httpclient提交json参数

httpclient使用post提交json参数,(跟使用表单提交区分):

代码语言:javascript
复制
private void httpReqUrl(List<HongGuTan> list, String url)
			throws ClientProtocolException, IOException {
	logger.info(&#34;httpclient执行新闻资讯接口开始。&#34;);
	JSONObject json = new JSONObject();
	DefaultHttpClient httpClient = new DefaultHttpClient();

	HttpPost method = new HttpPost(url);

	// 设置代理
	if (IS_NEED_PROXY.equals(&#34;1&#34;)) {
		HttpHost proxy = new HttpHost(&#34;192.168.13.19&#34;, 7777);
		httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY, proxy);
	}

	if (list != null &amp;&amp; list.size() &gt; 0) {
		logger.info(&#34;循环处理数据列表大小list.size={}&#34;, list != null ? list.size() : 0);

		// 开始循环组装post请求参数,使用倒序进行处理
		for (int i = list.size() - 1; i &gt;= 0; i--) {
			HongGuTan bean = list.get(i);
			if (bean == null) {
				continue;
			}
			// 验证参数
			Object[] objs = { bean.getTitle(), bean.getContent(),
					bean.getSourceUrl(), bean.getSourceFrom(),
					bean.getImgUrls() };
			if (!validateData(objs)) {
				logger.info(&#34;参数验证有误。&#34;);
				continue;
			}
			// 接收参数json列表
			JSONObject jsonParam = new JSONObject();
			jsonParam.put(&#34;chnl_id&#34;, &#34;11&#34;);// 红谷滩新闻资讯,channelId 77
			jsonParam.put(&#34;title&#34;, bean.getTitle());// 标题
			jsonParam.put(&#34;content&#34;, bean.getContent());// 资讯内容
			jsonParam.put(&#34;source_url&#34;, bean.getSourceUrl());// 资讯源地址
			jsonParam.put(&#34;source_name&#34;, bean.getSourceFrom());// 来源网站名称
			jsonParam.put(&#34;img_urls&#34;, bean.getImgUrls());// 采用 url,url,url 的格式进行图片的返回
			
			StringEntity entity = new StringEntity(jsonParam.toString(),&#34;utf-8&#34;);//解决中文乱码问题  
			entity.setContentEncoding(&#34;UTF-8&#34;);  
			entity.setContentType(&#34;application/json&#34;);  
			method.setEntity(entity);  
			
			//这边使用适用正常的表单提交 

// List<BasicNameValuePair> pairList = new ArrayList<BasicNameValuePair>();
//pairList.add(new BasicNameValuePair("chnl_id", "11"));
//pairList.add(new BasicNameValuePair("title", bean.getTitle()));// 标题
//pairList.add(new BasicNameValuePair("content", bean.getContent()));// 资讯内容
//pairList.add(new BasicNameValuePair("source_url", bean.getSourceUrl()));// 资讯源地址
//pairList.add(new BasicNameValuePair("source_name", bean.getSourceFrom()));// 来源网站名称
//pairList.add(new BasicNameValuePair("img_urls", bean.getImgUrls()));// 采用 url,url,url 的格式进行图片的返回
//method.setEntity(new UrlEncodedFormEntity(pairList, "utf-8"));

			HttpResponse result = httpClient.execute(method);

			// 请求结束,返回结果
			String resData = EntityUtils.toString(result.getEntity());
			JSONObject resJson = json.parseObject(resData);
			String code = resJson.get(&#34;result_code&#34;).toString(); // 对方接口请求返回结果:0成功  1失败
			logger.info(&#34;请求返回结果集{&#39;code&#39;:&#34; + code + &#34;,&#39;desc&#39;:&#39;&#34; + resJson.get(&#34;result_desc&#34;).toString() + &#34;&#39;}&#34;);

			if (!StringUtils.isBlank(code) &amp;&amp; code.trim().equals(&#34;0&#34;)) {// 成功
				logger.info(&#34;业务处理成功!&#34;);
			} else {
				logger.error(&#34;业务处理异常&#34;);
				Constants.dateMap.put(&#34;lastMaxId&#34;, bean.getId());
				break;
			}
		}
	}
}</code></pre></div></div>