Httpclient4.5.2 POST Json 数据到另外一个网站, 解析
2016-09-26 21:26
656 查看
需要使用HttpClient 4.5.2来做POST传参数到某个网站,得到相应的功能。
最近花了些时间在API上,通过JSON来调用几个功能。但是怎么传参数很头疼。
JSON需要理解得透彻一些,我是通过以下这个免费的视频,加深了对JSON的理解:
http://study.163.com/course/courseMain.htm?courseId=1295002
看了一些网上的介绍,最后是这样的做的:先形成一个字符串json(只是名字叫json而已),这个字符串就是标准的JSON字符串。确保这个字符串是正确的,然后把它代入httpPost的Entity,再执行POST操作(CloseableHttpResponse response2 = httpclient.execute(httpPost);)
这个方式最简单最直接,最容易验证。代码片段如下:
String json ="{\"subject\""+":"+"\""+T_subject+"\""+","+"\"description\""+":"+"\""+T_description+"\""+","+"\"status\""+":"+"\"new\""+","+"\"requester\""+":"+"{\"id\""+":"+requesterID+"}"+","+"\"serviceDesk\""+":"+"{\"id\""+":"+serviceDeskID+"}"+","+"\"engineer\""+":"+"{\"id\""+":"+engineerID+"}"+"}";
System.out.println("json tring ================="+json);
StringEntity requestEntity = new StringEntity(json, "utf-8");
httpPost.setEntity(requestEntity);
HttpEntity entity_POST = httpPost.getEntity();
String entityString = EntityUtils.toString(entity_POST);
System.out.println("POSTentityString="+entityString);
// System.out.println("POSTentityStringby_nvps="+nvps.toString());
// returnValue = httpclient.execute(httpPost, responseHandler);
CloseableHttpResponse response2 = httpclient.execute(httpPost);
try {
// System.out.println(response2.getStatusLine());
HttpEntity entity2 = response2.getEntity();
// System.out.println("VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVresponese2entityString="+EntityUtils.toString(entity2));
ContentType contentType2 = ContentType.getOrDefault(entity2);
Charset charset2 = contentType2.getCharset();
System.out.println("----------------------------------------------get_respone2_ContentType="+contentType2);
System.out.println("----------------------------------------------get_respone2_entityCharset="+charset2);
Reader reader2 = new InputStreamReader(entity2.getContent(), charset2);
System.out.println("==============================================get_respone2_entityReader="+reader2);
System.out.println("==============================================get_respone2_entityReader="+reader2.toString());
// do something useful with the response body
// and ensure it is fully consumed
EntityUtils.consume(entity2);
与此博客关联的另外一个博客,是写如何查看网站返回的加密数据的,如下:
http://blog.csdn.net/qxd100/article/details/52675362
同时,其他的一些Httpclient 解析 Json 数据的一些文章的收集如下,供参考:
这个比较实用:
http://blog.csdn.net/zhanghaonana/article/details/51792962
这个比较简洁:
http://blog.csdn.net/u014614038/article/details/49800709
这个也比较简洁:
http://zhcheng.iteye.com/blog/1292350
这个是讨论,包含了去官网的说明的链接:
http://bbs.csdn.net/topics/391887692
这个比较长的,比较详细:
http://itindex.net/detail/52566-httpclient
最近花了些时间在API上,通过JSON来调用几个功能。但是怎么传参数很头疼。
JSON需要理解得透彻一些,我是通过以下这个免费的视频,加深了对JSON的理解:
http://study.163.com/course/courseMain.htm?courseId=1295002
看了一些网上的介绍,最后是这样的做的:先形成一个字符串json(只是名字叫json而已),这个字符串就是标准的JSON字符串。确保这个字符串是正确的,然后把它代入httpPost的Entity,再执行POST操作(CloseableHttpResponse response2 = httpclient.execute(httpPost);)
这个方式最简单最直接,最容易验证。代码片段如下:
String json ="{\"subject\""+":"+"\""+T_subject+"\""+","+"\"description\""+":"+"\""+T_description+"\""+","+"\"status\""+":"+"\"new\""+","+"\"requester\""+":"+"{\"id\""+":"+requesterID+"}"+","+"\"serviceDesk\""+":"+"{\"id\""+":"+serviceDeskID+"}"+","+"\"engineer\""+":"+"{\"id\""+":"+engineerID+"}"+"}";
System.out.println("json tring ================="+json);
StringEntity requestEntity = new StringEntity(json, "utf-8");
httpPost.setEntity(requestEntity);
HttpEntity entity_POST = httpPost.getEntity();
String entityString = EntityUtils.toString(entity_POST);
System.out.println("POSTentityString="+entityString);
// System.out.println("POSTentityStringby_nvps="+nvps.toString());
// returnValue = httpclient.execute(httpPost, responseHandler);
CloseableHttpResponse response2 = httpclient.execute(httpPost);
try {
// System.out.println(response2.getStatusLine());
HttpEntity entity2 = response2.getEntity();
// System.out.println("VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVresponese2entityString="+EntityUtils.toString(entity2));
ContentType contentType2 = ContentType.getOrDefault(entity2);
Charset charset2 = contentType2.getCharset();
System.out.println("----------------------------------------------get_respone2_ContentType="+contentType2);
System.out.println("----------------------------------------------get_respone2_entityCharset="+charset2);
Reader reader2 = new InputStreamReader(entity2.getContent(), charset2);
System.out.println("==============================================get_respone2_entityReader="+reader2);
System.out.println("==============================================get_respone2_entityReader="+reader2.toString());
// do something useful with the response body
// and ensure it is fully consumed
EntityUtils.consume(entity2);
与此博客关联的另外一个博客,是写如何查看网站返回的加密数据的,如下:
http://blog.csdn.net/qxd100/article/details/52675362
同时,其他的一些Httpclient 解析 Json 数据的一些文章的收集如下,供参考:
这个比较实用:
http://blog.csdn.net/zhanghaonana/article/details/51792962
这个比较简洁:
http://blog.csdn.net/u014614038/article/details/49800709
这个也比较简洁:
http://zhcheng.iteye.com/blog/1292350
这个是讨论,包含了去官网的说明的链接:
http://bbs.csdn.net/topics/391887692
这个比较长的,比较详细:
http://itindex.net/detail/52566-httpclient
相关文章推荐
- httpClient post步骤 解析json数据(向服务器传递,接受服务器传递))
- C# HttpWebRequest\HttpWebResponse\WebClient发送请求解析json数据
- android通过httpClient请求获取JSON数据并且解析
- android通过httpClient请求获取JSON数据并且解析
- 一个完整的通过encoding/json信息传递格式,采用http.POST利用进行与服务器通信,并对返回结果进行解析处理的典型案例
- android通过httpClient请求获取JSON数据并且解析
- httpclient post 发送Json数据
- 通过HttpClient获取服务器接口json数据已及解析
- Java 通过HttpClient Post方式提交json,并从服务端返回json数据
- httpclient的post请求并处理json格式响应数据
- HttpClient请求数据(GET)并用JSON解析数据(一)
- HttpClient获取并解析JSON数据
- python 解析http post传递的数据(FieldStorage类 如何 解析http body中json数据)
- HttpClient和HttpUrlConnection实现post发送和接收json数据
- android通过httpClient请求获取JSON数据并且解析
- android通过httpClient请求获取JSON数据并且解析
- HttpClient获取并解析JSON数据
- android通过httpClient请求获取JSON数据并且解析
- HttpPost 传输Json数据并解析
- HttpPost 传输Json数据并解析