您的位置:首页 > 理论基础 > 计算机网络

Java 基于HttpClient和fluent-hc发送POST请求

2017-07-26 00:00 417 查看
摘要: 记录备忘

1、使用HttpClient

<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5</version>
</dependency>

String url = "http://xxx/dlmp/logview/addLogViewAPI.htm";
Map<String, String> params = Maps.newHashMap();
params.put("xxx", "xxx");
params.put("xxx", "xxx");
System.out.println(JSON.toJSONString(params));

RequestConfig defaultRequestConfig = RequestConfig.custom().setConnectTimeout(3000).setSocketTimeout(3000).setConnectionRequestTimeout(3000).build();
CloseableHttpClient httpclient = HttpClients.custom().setRetryHandler(new DefaultHttpRequestRetryHandler(0,false)).build();
httpclient = HttpClients.custom().setRetryHandler(new DefaultHttpRequestRetryHandler(0,false)).build();
HttpPost httpPost = new HttpPost(url);
httpPost.setConfig(defaultRequestConfig);
StringEntity entity = new StringEntity(JSON.toJSONString(params),"utf-8");//解决中文乱码问题
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
httpPost.setEntity(entity);

//        表单方式
//        List<BasicNameValuePair> pairList = new ArrayList<BasicNameValuePair>();
//        pairList.add(new BasicNameValuePair("name", "admin"));
//        pairList.add(new BasicNameValuePair("pass", "123456"));
//        httpPost.setEntity(new UrlEncodedFormEntity(pairList, "utf-8"));

CloseableHttpResponse response = httpclient.execute(httpPost);
String res = EntityUtils.toString(response.getEntity());

System.out.println(res);


2、使用轻量级的fluent-hc包

<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>fluent-hc</artifactId>
<version>4.5.2</version>
</dependency>

String url = "http://xxx/dlmp/logview/addLogViewAPI.htm";
Map<String, String> params = Maps.newHashMap();
params.put("xxx", "xxx");
params.put("xxx", "xxx");
System.out.println(JSON.toJSONString(params));

String res = EntityUtils.toString(Request.Post(url).bodyString(JSON.toJSONString(params), ContentType.APPLICATION_JSON).execute().returnResponse().getEntity());
System.out.println(res);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java httpclient