apacheco httpclient 4 学习和例子
public static String sendRequest(String[] reqXml) {HttpPost httpPost = null;String rspXml = null;try {// 构造HttpClient的实例HttpClient httpClient = new DefaultHttpClient();// 设置连接超时httpClient.getParams().setIntParameter(HttpConnectionParams.CONNECTION_TIMEOUT, 10000);httpClient.getParams().setIntParameter(HttpConnectionParams.SO_TIMEOUT, 20000);httpClient.getParams().setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET, "UTF-8");httpPost = new HttpPost(ApiAction.SERVER_URL);//httpPost.setHeader(HTTP.CONTENT_TYPE, "charset=UTF-8");httpPost.setHeader(HTTP.CONTENT_ENCODING, "UTF-8");httpPost.setHeader(HTTP.USER_AGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.2)"); // 用逗号分隔显示可以同时接受多种编码httpPost.setHeader("Accept-Language", "zh-cn,zh;q=0.5");httpPost.setHeader("Accept-Charset", "UTF-8;q=0.7,*;q=0.7");//参数List<NameValuePair> nameValuePairList = new ArrayList<NameValuePair>();nameValuePairList.add(new BasicNameValuePair("xml", reqXml[0]));nameValuePairList.add(new BasicNameValuePair("signature", reqXml[1]));// 将参数加入到请求方法中HttpEntity httpEntity = new UrlEncodedFormEntity(nameValuePairList, "UTF-8");httpPost.setEntity(httpEntity);// 发送连接HttpResponse httpResponse = httpClient.execute(httpPost);HttpEntity rspHttpEntity = httpResponse.getEntity();int statusCode = httpResponse.getStatusLine().getStatusCode();if (statusCode == HttpStatus.SC_OK) {rspXml = IOUtils.toString(rspHttpEntity.getContent());LOGGER.info("响应XML:" + rspXml);} else {LOGGER.error("http client 错误。错误码[" + statusCode + "]");}return rspXml;} catch (Exception e) {LOGGER.error("http client invoke error.", e);return null;} finally {if (httpPost != null) {httpPost.releaseConnection();}}}