需求是这样
我们需要发送一个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>() {
@Override
public void onResponse(JSONObject response) {
Log.d(TAG, "response -> " + response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, error.getMessage(), error);
}
}) { @Override
public 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); }
这里主要用到的就是
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);
//后面一样的,省略。
这样再使用 JSONObject 的方法就可以生成我们想要的json格式啦!很简单是吧。
下面来说下JsonRequest的参数:
参数一:
请求方式 (这里是post)
参数二:
请求的URL
参数三:
请求的参数(如果是get请求方式则为空 null)
参数四:
服务器相应的回调(可以根据服务器的相应码区分不同的情况)
参数五:
服务器未响应的回调(可以做一些简单的提示)
谢谢阅读!
volley用法之 以post方式发送 json 参数的更多相关文章
-
Java 用HTTP的方式发送JSON报文请求
前言: 项目调用第三方接口时,通常是用socket或者http的通讯方式发送请求:http 为短连接,客户端发送请求都需要服务器端回送响应,请求结束后,主动释放链接.Socket为长连接:通常情况下S ...
-
java 模拟http请求,通过流(stream)的方式,发送json数据和文件
发送端: /** * 以流的方式 * 发送文件和json对象 * * @return */ public static String doPostFileStreamAndJsonObj(String ...
-
HttpClient通过Post方式发送Json数据
服务器用的是Springmvc,接口内容: @ResponseBody @RequestMapping(value="/order",method=RequestMethod.PO ...
-
springboot使用RestTemplate以post方式发送json字符串参数(以向钉钉机器人发送消息为例)
使用springboot之前,我们发送http消息是这么实现的 我们用了一个过时的类,虽然感觉有些不爽,但是出于一些原因,一直也没有做处理,最近公司项目框架改为了springboot,springbo ...
-
HttPclient 以post方式发送json
使用HttpClient 以POST的形式发送json字符串 步骤: 1.url .parameters 2.创建httpClient对象 3.创建HttpPost对象 4.为post对象设置参数 5 ...
-
C# ContentType: ";application/json"; 请求方式传json参数问题
处理Http请求时遇到的ContentType为application/json方式,记录下这种Post请求方式下如何传json参数: var request = (HttpWebRequest)We ...
-
postman发送json参数到后端controller报错415的解决方案
警告 [http-nio-8080-exec-9] org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.l ...
-
Volley用法
RequestQueue requestQueue = Volley.newRequestQueue(this); JsonObjectRequest jsonObjectRequest = new ...
-
JMeter学习(三十五)使用jmeter来发送json/gzip格式数据
一.使用jmeter来发送gzip数据 有时候我们需要模拟在客户端将数据压缩后, 发送(post)到服务器端. 通常这种情况,会发生在移动终端上. 这样做的好处, 是可以节省流量. 当然, 服务器返 ...
随机推荐
-
Nginx基础知识之————日志管理
一.Server段,可以看到如下类似信息 #access_log logs/host.access.log main; 说明该server, 它的访问日志的文件是 logs/host.access. ...
-
获取一年时间的sql
select a.day, to_char(a.day, 'day') as dd, 1 as flag,to_char(a.day,'YYYY-MM-DD') from ( SELECT TO_DA ...
-
一个漂亮的DIV搜索条
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
-
jquery如何判断div是否隐藏--useful
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
-
利用svn自动同步更新到网站服务器 -- 网摘
首先在服务器上安装VisualSVN Server ,根据提示选好安装的路径,一路确定.安装好后运行VisualSVN Server ,在Repositories上点击右键,选择create New ...
-
tomcat部署项目的一点心得
打包方式 eclipse 右键项目Export 选择WAR file 在选择将打包好的war 包存放的位置 放到tomcat中运行 : 首先将war包fang放到解压的tomcat中的weba ...
-
像屎一样的 Spring Boot入门,总算有反应了
我特么最烦的就是现在Java不知道抽什么风,喜欢用maven这种,怎么搞都会有错误提示的玩意.搞个spring boot,官方的所谓http://start.spring.io/生成的项目启动不了. ...
-
turtlebot3安装遇到的问题总结
turtlebot3安装遇到的问题总结 问题如下 1.ubuntu mate 开机启动 开始试了很多方法都不行,注意不要输错用户名,不然进不了系统了(进不了解决方法,找个电脑读一下这个turtlebo ...
-
23.python中的类属性和实例属性
在上篇的时候,我们知道了:属性就是属于一个对象的数据或者函数,我们可以通过句点(.)来访问属性,同时 python 还支持在运作中添加和修改属性. 而数据变量,类似于: name = 'scolia' ...
-
django模板里关闭特殊字符转换,在前端以html语法渲染
变量 pagination_html是一个方法返回的html代码,需要在前端渲染出来,不是当字符串显示 <!-- /.box-body --> {% autoescape off %} { ...