httpclient提交json参数

Posted Programming is an art

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了httpclient提交json参数相关的知识,希望对你有一定的参考价值。

 1 private void httpReqUrl(List<HongGuTan> list, String url)  
 2             throws ClientProtocolException, IOException {  
 3   
 4         logger.info("httpclient执行新闻资讯接口开始。");  
 5         JSONObject json = new JSONObject();  
 6         DefaultHttpClient httpClient = new DefaultHttpClient();  
 7   
 8         HttpPost method = new HttpPost(url);  
 9   
10         // 设置代理  
11         if (IS_NEED_PROXY.equals("1")) {  
12             HttpHost proxy = new HttpHost("192.168.13.19", 7777);  
13             httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY, proxy);  
14         }  
15   
16         if (list != null && list.size() > 0) {  
17             logger.info("循环处理数据列表大小list.size={}", list != null ? list.size() : 0);  
18   
19             // 开始循环组装post请求参数,使用倒序进行处理  
20             for (int i = list.size() - 1; i >= 0; i--) {  
21                 HongGuTan bean = list.get(i);  
22                 if (bean == null) {  
23                     continue;  
24                 }  
25                 // 验证参数  
26                 Object[] objs = { bean.getTitle(), bean.getContent(),  
27                         bean.getSourceUrl(), bean.getSourceFrom(),  
28                         bean.getImgUrls() };  
29                 if (!validateData(objs)) {  
30                     logger.info("参数验证有误。");  
31                     continue;  
32                 }  
33                 // 接收参数json列表  
34                 JSONObject jsonParam = new JSONObject();  
35                 jsonParam.put("chnl_id", "11");// 红谷滩新闻资讯,channelId 77  
36                 jsonParam.put("title", bean.getTitle());// 标题  
37                 jsonParam.put("content", bean.getContent());// 资讯内容  
38                 jsonParam.put("source_url", bean.getSourceUrl());// 资讯源地址  
39                 jsonParam.put("source_name", bean.getSourceFrom());// 来源网站名称  
40                 jsonParam.put("img_urls", bean.getImgUrls());// 采用 url,url,url 的格式进行图片的返回  
41                   
42                 StringEntity entity = new StringEntity(jsonParam.toString(),"utf-8");//解决中文乱码问题    
43                 entity.setContentEncoding("UTF-8");    
44                 entity.setContentType("application/json");    
45                 method.setEntity(entity);    
46                   
47                 //这边使用适用正常的表单提交   
48   
49 //               List<BasicNameValuePair> pairList = new ArrayList<BasicNameValuePair>();    
50                 //pairList.add(new BasicNameValuePair("chnl_id", "11"));   
51                 //pairList.add(new BasicNameValuePair("title", bean.getTitle()));// 标题    
52                 //pairList.add(new BasicNameValuePair("content", bean.getContent()));// 资讯内容    
53                 //pairList.add(new BasicNameValuePair("source_url", bean.getSourceUrl()));// 资讯源地址    
54                 //pairList.add(new BasicNameValuePair("source_name", bean.getSourceFrom()));// 来源网站名称    
55                 //pairList.add(new BasicNameValuePair("img_urls", bean.getImgUrls()));// 采用 url,url,url 的格式进行图片的返回    
56                 //method.setEntity(new UrlEncodedFormEntity(pairList, "utf-8"));   
57                   
58                   
59                 HttpResponse result = httpClient.execute(method);  
60   
61                 // 请求结束,返回结果  
62                 String resData = EntityUtils.toString(result.getEntity());  
63                 JSONObject resJson = json.parseObject(resData);  
64                 String code = resJson.get("result_code").toString(); // 对方接口请求返回结果:0成功  1失败  
65                 logger.info("请求返回结果集{‘code‘:" + code + ",‘desc‘:‘" + resJson.get("result_desc").toString() + "‘}");  
66   
67                 if (!StringUtils.isBlank(code) && code.trim().equals("0")) {// 成功  
68                     logger.info("业务处理成功!");  
69                 } else {  
70                     logger.error("业务处理异常");  
71                     Constants.dateMap.put("lastMaxId", bean.getId());  
72                     break;  
73                 }  
74             }  
75         }  
76     }  

 

以上是关于httpclient提交json参数的主要内容,如果未能解决你的问题,请参考以下文章

HttpClient POST/SET方法

HttpClient实现POST参数提交

HttpClient模拟get,post请求并发送请求参数(json等)

httpclient模拟post请求json封装表单数据

httpclient网页提交参数如何使用

SoapUI如何提交Http Post多条数据Json请求