Json格式的http请求
服务端PHP代码可以从这里下载:https://github.com/lornajane/PHP-Web-Services 1.使用volley实现: request要用JsonObjectRequest,这个request在url后面带有一个JSONObject类型的参数 如果服务端有检测http头的请求数据类型和接受数据类型(比如有的服务端会根据http头中的Accept字段标示的类型,返回json,xml或其他数据类型,也会根据Content-type字段的标示,按json或form类型解析请求参数),还需要在getHeaders回调中设置头部参数,如果服务端不检测,可以不设置: headers.put("Accept", "application/json");//表示接受json类型的响应 headers.put("Content-Type", "application/json; charset=UTF-8");//表示传递给服务器的参数是json类型 String strUrl = "http://10.2.152.133/test/rest/rest.php/items"; try { JSONObject jsonBody = new JSONObject("{\"name\":\"Brett\",\"link\":\"haha\"}"); JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, strUrl, jsonBody, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { Log.d("qf", response.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.d("qf", error.getMessage()); } } ) { @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; } }; MyApp.mRequestQueue.add(request); } catch (Exception e) { e.printStackTrace(); } 2.使用httputils实现: content-type设置也要根据情况需要,同volley一样 普通的表单请求是addQueryStringParameter(get)或addBodyParameter(post),json请求是setBodyEntity protected void postJsonByXutils() { String strUrl = "http://10.2.152.133/test/rest/rest.php/items"; RequestParams requestParams = new RequestParams(); requestParams.addHeader("Content-Type", "applicasettion/json"); JSONObject json = new JSONObject(); try { json.put("name", "zy"); json.put("link", "zy2"); } catch (JSONException e) { e.printStackTrace(); } requestParams.setBodyEntity(new StringEntity(json.toString(), "utf-8")); MyApp.mHttpUtils.send(HttpRequest.HttpMethod.POST, strUrl,requestParams,new RequestCallBack<String>() { @Override public void onSuccess(ResponseInfo<String> responseInfo) { String strResult = responseInfo.result; Log.d("qf", strResult); } @Override public void onFailure(HttpException error, String msg) { Log.d("qf", msg); } }); } 3.使用httpurlconnection: protected void postJsonByHttpURLConnection() { HttpURLConnection httpcon; String url = "http://10.2.152.133/test/rest/rest.php/items"; String data = "{\"name\":\"Brett2\",\"link\":\"haha2\"}"; String result = null; try { //Connect httpcon = (HttpURLConnection) ((new URL(url).openConnection())); httpcon.setDoOutput(true); httpcon.setRequestProperty("Content-Type", "application/json"); httpcon.setRequestProperty("Accept", "application/json"); httpcon.setRequestMethod("POST"); httpcon.connect(); //Write OutputStream os = httpcon.getOutputStream(); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8")); writer.write(data); writer.close(); os.close(); //Read BufferedReader br = new BufferedReader(new InputStreamReader(httpcon.getInputStream(), "UTF-8")); String line = null; StringBuilder sb = new StringBuilder(); while ((line = br.readLine()) != null) { sb.append(line); } br.close(); result = sb.toString(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } //http://blog.csdn.net/lamp_zy/article/details/52300629 }//特别注意一点,在进行接口调用时,会发生乱码 connection.setRequestProperty("ContentType", "utf-8"); // 设置发送数据的格式 connection.setRequestProperty("Accept-Charset", "utf-8");
Json格式的http请求的更多相关文章
- Loadrunner:LR提交JSON格式的POST请求
场景: 影视分发:影院客户端向管理平台发起取任务的操作,取任务接口getDispatchTask,为JSON格式的POST请求 Action() { web_custom_request(" ...
- requests(一): 发送一个json格式的post请求
今天给一位同学解决post发送数据格式为json格式的请求,顺便确认一下问题归属. 背景: 用postman工具发送一个数据格式为json的请求,得到了服务器的响应. 用python的requests ...
- python接口之request测试:以json格式发送post请求,.json方法,查看响应结果的情况
json和dict python中的dict类型要转换为json格式的数据需要用到json库: import json <json> = json.dumps(<dict>) ...
- java发送application/json格式的post请求,需要登陆
package util; import java.io.IOException; import java.io.InputStream; import java.io.OutputStreamWri ...
- java代码发送JSON格式的httpPOST请求
package com.test; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOE ...
- postman发送json格式的post请求
在地址栏里输入请求url:http://127.0.0.1:8081/getmoney 选择“POST”方式, 在“headers”添加key:Content-Type , value:applic ...
- (转)java代码发送JSON格式的httpPOST请求
import Java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import j ...
- SpringCloud中接收application/json格式的post请求参数并转化为实体类
@CrossOrigin(allowCredentials="true", allowedHeaders="*", methods={RequestMethod ...
- RestTemplate发送请求并携带header信息 RestTemplate post json格式带header信息
原文地址: http://www.cnblogs.com/hujunzheng/p/6018505.html RestTemplate发送请求并携带header信息 v1.使用restTempl ...
随机推荐
- 真机测试,Xcode报错:process launch failed: Security
解决办法:手机->通用->设备管理->信任开发商应用即可
- oracle 语句
1.查询TRENDCHART_DLT表中的30条数据,统计字段FRONT01='0',BACK12='0'的条数 select sum(case when FRONT01='0' then 1 els ...
- Skin++ 皮肤库 CCheckListBox MFC 界面风格
今天使用CCheckListBox,发现增加进去的字符串无法显示,但是当点击的时候,确有反应. 仔细检查代码,没有问题.之前也是这样用的,完全没有问题. 思前想后,觉得是因为使用了Skin++皮肤库, ...
- 洛谷 P1515 旅行
P1515 旅行 题目描述 你要进行一个行程为7000KM的旅行,现在沿途有些汽车旅馆,为了安全起见,每天晚上都不开车,住在汽车旅馆,你手里现在已经有一个旅馆列表,用离起点的距离来标识,如下: 0, ...
- html5中的一些小知识点(CSS)
1.点击a标签周围区域就可以进入超链接: a标签 的css样式中的 display属性设置为block 就可以了 2.文字左右居中: text-align 属性值为 center 3.文字上下居中: ...
- webservice: Could not initialize Service NoSuchMethodException getPortClassMap()
今天用apache-cxf-3.1.1的wsdl2java生成webservice文件,调用的时候出了问题 报错:Could not initialize Service NoSuchMethodEx ...
- Selenium2+Python自动化测试实战
本人在网上查找了很多做自动化的教程和实例,偶然的一个机会接触到了selenium,觉得非常好用.后来就在网上查阅各种selenium的教程,但是网上的东西真的是太多了,以至于很多东西参考完后无法系统的 ...
- 解决VS2013中“This function or variable may be unsafe”的问题
1.在VS2013中编译代码时出现如上错误信息,下面就介绍下如何解决This function or variable may be unsafe的问题. 2.用VS2013打开出现错误的代码文件 3 ...
- Install and use Karma
1:安装karma y@y:~$ npm install --global karma 2:安装karma插件 y@y:~$ npm install --global karma-jasmine ka ...
- hdu 4541 Ten Googol
http://acm.hdu.edu.cn/showproblem.php?pid=4541 打表找规律 #include <cstdio> #include <cstring> ...