volley用法之 以post方式发送 json 参数
2016-11-03 00:00
387 查看
需求是这样
我们需要发送一个post请求向服务器要参数。要求是发送的post参数也要是json格式。
简单一点的是这样的:
如果要发送的是这样简单的json格式,我们可以简单的使用map来实现:
View Code
这里主要用到的就是
这个方法,可以很方便的将map转成json数据。
如果需要传的是个有嵌套的json数据又该怎么办呢?
例如:
相比之前的数据,我们看到 merchant也是一个json Object
这种嵌套的格式该怎么写呢?也很简单这里是嵌套,我们也写一个map的嵌套
就好啦!
View Code
这样再使用 JSONObject 的方法就可以生成我们想要的json格式啦!很简单是吧。
下面来说下JsonRequest的参数:
参数一:
请求方式 (这里是post)
参数二:
请求的URL
参数三:
请求的参数(如果是get请求方式则为空 null)
参数四:
服务器相应的回调(可以根据服务器的相应码区分不同的情况)
参数五:
服务器未响应的回调(可以做一些简单的提示)
谢谢阅读!
我们需要发送一个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); }
View Code
这里主要用到的就是
JSONObject jsonObject = new JSONObject(map);
这个方法,可以很方便的将map转成json数据。
如果需要传的是个有嵌套的json数据又该怎么办呢?
例如:
相比之前的数据,我们看到 merchant也是一个json Object
这种嵌套的格式该怎么写呢?也很简单这里是嵌套,我们也写一个map的嵌套
就好啦!
RequestQueue requestQueue = Volley.newRequestQueue(getAppli 7fe0 cationContext()); 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)
参数四:
服务器相应的回调(可以根据服务器的相应码区分不同的情况)
参数五:
服务器未响应的回调(可以做一些简单的提示)
谢谢阅读!
相关文章推荐
- volley用法之 以post方式发送 json 参数
- python使用post方式发送json参数
- python使用post方式发送json参数
- ajax请求当发送post方式application/json格式数据,url后面又带有参数的时候
- httpclient4 post 以json方式传参数
- c#中 put方式发送Json数据、post方式、delete方式、get方式、
- Jquery发送ajax请求以及datatype参数为text/JSON方式
- ExtJS发送POST请求 参数格式为JSON
- Android学习笔记---27_网络通信之通过GET和POST方式提交参数给web应用,以及使用httpClient,来给web项目以post方式发送参数
- 通过post方式传递json参数,并返回网页源码
- (转)获取 request 中用POST方式"Content-type"是"application/x-www-form-urlencoded;charset=utf-8"发送的 json 数据
- asynchttpclient的post方法发送json格式参数和表单格式参数
- Android网络框架-Volley(四) 使用get和post方法发送json请求
- Volley使用JsonObjectRequest发送Post请求失败
- JS获取url参数,JS发送json格式的POST请求方法
- HttpClient通过Post方式发送Json数据
- HttpURLConnection 、HttpPost、Okhttp 等POST方式发送JSON数据
- 实习第一天——做一个录音上传服务器的小功能pttp协议post发送文件和参数到服务器,解析返回的json数据
- Extjs ajax同步请求时post方式参数发送方式
- HttpClient模拟get,post请求并发送请求参数(json等)