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,一经查实,立即删除!

相关文章

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…

CDN架构以及原理分析

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

基于VS2019的Eigen库安装详解

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

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

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

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…

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

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

基于C#的ico图标制作与应用

一、简介 ICO是什么 ICO 是 Windows 开发的一种图标格式&#xff0c;是一种可以存储多张图案、多尺寸、多色板的图标文件。 一般用IcoFX软件来创建或修改ico文件。 点击下载 Ico文件创建与应用 1.单击打开按钮&#xff0c;选择一个图像文件&#xff0c;确定后一般出现以下…

第5章--高级数据管理

5.1 数值和字符处理函数 常用的数学函数 统计函数 例子&#xff1a; > x <- c(1,2,3,4,5,6,7,8) > mean(x) [1] 4.5 > sd(x) [1] 2.44949 默认情况下&#xff0c;函数scale()对矩阵或数据框的指定列进行均值为0、标准差为1的标准化&#xff1a; newdata <- scal…

GSM BTS Hacking: 利用BladeRF和开源BTS 5搭建基站

GSM BTS Hacking: 利用BladeRF和开源BTS 5搭建基站 引文 如果你已经购买了Nuand&#xff08;官方&#xff09;BladeRF x40&#xff0c;那么就可以在上面运行OpenBTS并可以输入一些指令来完成一些任务。一般来说HackRF&#xff0c;是一款覆盖频率最宽的SDR板卡。它几乎所有的信息…

Linux 中断处理浅析

最近在研究异步消息处理, 突然想起linux内核的中断处理, 里面由始至终都贯穿着”重要的事马上做, 不重要的事推后做”的异步处理思想. 于是整理一下~第一阶段&#xff0d;&#xff0d;获取中断号每个CPU都有响应中断的能力, 每个CPU响应中断时都走相同的流程. 这个流程就是内核…

用scikit-learn研究局部线性嵌入(LLE)

1. scikit-learn流形学习库概述 在scikit-learn中&#xff0c;流形学习库在sklearn.manifold包中。里面实现的流形学习算法有&#xff1a; 1&#xff09;多维尺度变换MDS算法&#xff1a;这个对应的类是MDS。MDS算法希望在降维时在高维里样本之间的欧式距离关系在低维可以得到保…

iOS app 企业内部发布及HTTPS服务器配置

转自: http://www.cnblogs.com/cocoajin/p/4082488.html iOS企业内部发布及HTTPS服务器配置 一&#xff1a;所需的条件 1. 苹果开发者证书&#xff0c;企业版 299$ 版本 2. ssl 证书&#xff0c;即https使用的服务器证书 3. web服务器&#xff0c;支持https 4. 一个域名&#x…

Pytorch超简单安装教程

安装Pytorch 1.1 安装Annaconda 安装Pytorch首先需要安装Annaconda&#xff0c;按照教程&#xff0c;安装了Annaconda5.2.0的版本。 路径 记住安装路径即可&#xff0c;其余均选默认。 1.2 安装Pytorch 第一步&#xff0c;打开Anaconda Prompt 。然后输入 conda create -n…

44. 源代码解读-RocketMQ-架构

1. 前言 1.1 github源代码 https://github.com/apache/rocketmq 1.2 github其他客户端&#xff0c;比如c,php https://github.com/apache/rocketmq-externals 1.3 运行进程 RocketMQ分成两个进程运行 NamesrvBrokerNamesrv&#xff0c;命名服务&#xff0c;主要负责Broker状态管…

Pytorch基础(一) —— tensorboard的应用

一、简介与安装方法 1.1 概念 Tensorboard 是 TensorFlow 的一个工具包&#xff0c;用于展示网络图、张量的指标变化和分布情况&#xff0c;如权重W、偏置B、卷积层数、全连接层数等参数&#xff0c;使用该工具可以方便观察神经网络训练过程&#xff0c;分析学习模型训练的效…

【WIN10】WIN2D——基本圖形的繪製

DEMO下載地址&#xff1a;http://yunpan.cn/c3iNuHFFAcr8h &#xff08;提取码&#xff1a;8e48&#xff09; 先看一個截圖&#xff1a; 繪製了一些基本形狀。 DEMO的繪製代碼都非常簡單&#xff0c;不想在博客裡細說了&#xff0c;看代碼更為清晰些。 可能繪製扇形的代碼有些麻…

python socket 网络编程

socket 套接字&#xff1a;网络接口。 我们在网络上需要传输自己需要的数据&#xff0c;我们在网络上传输数据使用的是网络协议&#xff0c; 而套接字就是我们将数据从本地采用协议传输的接口 socket模型&#xff1a; socket族&#xff1a; #AF_UNIX 被使用在类unix系统之间进行…

Python中利用plt显示中文标题解决方案

解决方法 plt.rcParams[font.sans-serif][SimHei] plt.rcParams[axes.unicode_minus] False plt.title(灰度级别频率图) plt.show()

Pytorch基础(四)—— 卷积层

一、概念 卷积从数学的角度讲是一种矩阵的运算方法。我们可以用一个卷积核对一个矩阵进行卷积运算&#xff0c;具体运算过程图示可以见pytorch官网。 卷积运算按输入数据的通道数可分为单通道和多通道两种。 单通道是指卷积核只有一个的情况。 多通道包括两种。 分别是单个…