volley用法之 以post方式发送 json 参数

需求是这样

我们需要发送一个post请求向服务器要参数。要求是发送的post参数也要是json格式。

简单一点的是这样的:

如果要发送的是这样简单的json格式,我们可以简单的使用map来实现:

RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());Map<String, String> merchant = new HashMap<String, String>();merchant.put("id", "id");merchant.put("ncode", "ncode");merchant.put("tradingName", "tradingName");Log.d("map", map.toString());JSONObject jsonObject = new JSONObject(merchant);Log.e(TAG, "getdata: " + jsonObject.toString());JsonRequest<JSONObject> jsonRequest = new JsonObjectRequest(Request.Method.POST, "", jsonObject,new Response.Listener<JSONObject>() {@Overridepublic void onResponse(JSONObject response) {Log.d(TAG, "response -> " + response.toString());}}, new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError error) {Log.e(TAG, error.getMessage(), error);}}) {@Overridepublic Map<String, String> getHeaders() {HashMap<String, String> headers = new HashMap<String, String>();headers.put("Accept", "application/json");headers.put("Content-Type", "application/json; charset=UTF-8");return headers;}};requestQueue.add(jsonRequest);}
View Code

这里主要用到的就是

JSONObject jsonObject = new JSONObject(map);

这个方法,可以很方便的将map转成json数据。

如果需要传的是个有嵌套的json数据又该怎么办呢?

例如:

相比之前的数据,我们看到 merchant 也是一个json Object

这种嵌套的格式该怎么写呢?也很简单这里是嵌套,我们也写一个map的嵌套

就好啦!

RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());Map<String, String> merchant = new HashMap<String, String>();merchant.put("id", "id");merchant.put("ncode", "ncode");merchant.put("tradingName", "tradingName");Map<String, Object> map = new HashMap<>();map.put("billType", "ADHOC");map.put("collectionCode", "string");map.put("otherRefNo", "string");map.put("contactMode", "SMS");map.put("merchant", merchant);map.put("currency", "SGD");map.put("amount", " 0.00");Log.d("map", map.toString());JSONObject jsonObject = new JSONObject(map);
//后面一样的,省略。
View Code

这样再使用 JSONObject 的方法就可以生成我们想要的json格式啦!很简单是吧。

 

下面来说下JsonRequest的参数:

参数一:

  请求方式 (这里是post)

参数二:

  请求的URL

参数三:

  请求的参数(如果是get请求方式则为空 null)

参数四:

  服务器相应的回调(可以根据服务器的相应码区分不同的情况)

参数五:

  服务器未响应的回调(可以做一些简单的提示)

 

 

谢谢阅读!

 

转载于:https://www.cnblogs.com/wobeinianqing/p/5939928.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256267.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我的友情链接

小小忍者Tab转载于:https://blog.51cto.com/12737170/2043087

JAVA 文件编译执行与虚拟机(JVM)简单介绍

详见&#xff1a;http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo3 java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 Java 虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上&#xff0c;就能保证经过编译的任…

C#中数据流(文件流、内存流、网络流等)相关知识点梳理

基本概念 C#中数据流的应用体现在方方面面&#xff0c;现在针其常用的几种类进行一次梳理。 数据流包括文件流(FileStream)、内存流(MemoryStream)、网络流(NetworkStream)以及读写流如StreamReader、StreamWriter、BinaryReader和BinaryWriter等。 数据流是什么&#xff1f; …

dns服务 很多问题,后续再研究

慕课网&#xff1a;http://www.imooc.com/video/5220 参考&#xff1a;http://jingyan.baidu.com/article/870c6fc32c028eb03fe4be30.html http://www.tuicool.com/articles/aUNzMfi http://www.07net01.com/linux/dnszhucongfuzhijiquyuchuansong_505144_1373161402.html http…

LINUX下用脚本实现JDK+TOMCAT

这几天真是累。常常下半夜3点睡觉。是因为这段时间对LINUX下的SHELL编程喜欢上了。 一时弄的忘了睡觉。还好&#xff0c;累没白累。遍写了一个JDKTOMCAT的自动安装&#xff0c;配置的脚本 在这里我把配置出来的成果拿来和大家分享一下。希望有高手来指定一下&#xff0c;我在编…

【图像处理】——图像增强Python实现直方图均衡化

目录 一、相关概念 1、灰度直方图概念(hist) 2、灰度概率累积函数(cdf) 3、灰

C#常见编码方式总结

一、概念 我们知道计算机是基于二进制来表示数据的&#xff0c;那么对于字母和汉字等字符用二进制如何表示&#xff1f; 这就需要用一种编码方式将这些字母或者符号转换二进制表示。首先需要对字符集进行编码表示&#xff0c;每个编码代表一个固定的字符&#xff0c;然后再将字…

Spring中ApplicationContext加载机制

详见&#xff1a;http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp33 加载器目前有两种选择&#xff1a;ContextLoaderListener和ContextLoaderServlet。 这两者在功能上完全等同&#xff0c;只是一个是基于Servlet2.3版本中新引入的Listener接口实现&#xff0c;…

Codeforces 724 C. Ray Tracing

Codeforces 724 C. Ray Tracing 题目来源 codeforces 题意&#xff1a; 有一些传感器按输入坐标分布在图上&#xff0c;有一道光从(0,0)沿45角出射&#xff0c;遇到边按反射法则反射&#xff0c;遇到角落结束。 问每一个点被经过的时间&#xff0c;并按照输入顺序输出。题解&am…

CDN架构以及原理分析

详见&#xff1a; http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp61 在不同地域的用户访问网站的响应速度存在差异,为了提高用户访问的响应速度、优化现有Internet中信息的流动,需要在用户和服务器间加入中间层CDN. 使用户能以最快的速度&#xff0c;从最接近用…

基于VS2019的Eigen库安装详解

概念 Eigen是一个C开源线性代数库&#xff0c;以提供有关矩阵的的线性代数运算&#xff0c;解方程等功能。Eigen在很多领域如信号处理&#xff0c;图像处理&#xff0c;深度学习等起到重要作用&#xff0c;学习其操作方法&#xff0c;可以灵活的对线性代数、矩阵和矢量将进行计…

【图像处理】——Python图像分割边缘检测算法之二阶梯度算子(laplace、log、dog算子)

目录 一、二阶算子简介 二、laplace(拉普拉斯算子) 1、什么是拉普拉斯算子

C#中不常见的运算符功能汇总

介绍 C#有很多运算符&#xff0c;可分为以下几种&#xff1a;算数运算符&#xff0c;比较运算符&#xff0c;条件运算符&#xff0c;赋值运算符&#xff0c;逻辑运算符。下面对不常见的运算符进行汇总。 概念 条件运算符 ?(可空类型修饰符) 引用类型可以使用空引用表示一…

SQL Server2012中如何通过bak文件还原SQL Server2012数据库

1 登陆完数据库后&#xff0c;不要新建数据库&#xff0c;直接点击“数据库”然后右击"还原数据库"。 2 在"源"选项中选择"设备"。 3 选择相应的bak文件并进行添加。 4 添加完之后点击确定&#xff0c;注意在目标这一栏中数据库名称都可以不用写…

【图像处理】——Python OpenCV实现形态学膨胀、腐蚀开闭操作(可以用于图像滤波、图像分割等)

转载博客请注明详细地址,谢谢本文讲了形态学基本操作膨胀腐蚀开闭操作的原理本文讲解了用OpenCV-Python实现形态学操作目录 一、形态学简述 1、简介 2、一些基本定义 3、结构元素

thrift服务windows环境编译失败

为什么80%的码农都做不了架构师&#xff1f;>>> 修改maven的pom文件 <!--thrift服务 api 层&#xff0c;开发时 windows系统需指定exe程序位置--> <properties> <thrift.exe.path>E:/Thrift/thrift-0.9.3.exe</thrift.exe.path&g…

编译包含Google Play服务App的SDK版本问题

编译包含Google Play服务App的SDK版本问题 错误信息&#xff1a;No Resouce identifier found for attribute ‘touchscreen BlocksFocus’ in package ‘android’这个错误通常是App引用了Google Play时候发生。Xamarin编译该类App&#xff0c;需要目标SDK版本必须是21或者更高…

《第一行代码》学习笔记35-服务Service(2)

1.Android的UI线程不安全&#xff0c;想要更新应用程序里的UI元素&#xff0c;则须在主线程中进行&#xff0c;否则会出现异常。 2.Android不允许在子线程里进行UI操作&#xff0c;对于该情况&#xff0c;Android提供了一套异步消息处理机制&#xff0c;完美解决在子线程中进行…

C#中HP-Socket通信组件详解

概念 HP-Socket 是国产的TCP、UDP和HTTP 通信框架&#xff0c;包含服务端、客户端和 Agent 组件&#xff0c;提供 C/C、C#、Java、Python 等多种编程语言接口。 与传统TCP通讯区别的是HP-Socket 对通信层做到了完全封装&#xff0c;程序不必关注通信层的任何细节&#xff1b;H…