HttpClientUtil工具类封装
package com.jd.ng.shiro.utils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
@Author: husToy.Wang
@Date: 2019/8/5 9:38
@Version 1.0
*/
public class HttpClientUtil {private static final Logger logger = LoggerFactory.getLogger(HttpClientUtil.class);
/**
封装 doGet方法,执行
@param url
@return
*/
public static String doGet(String url) {CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(url);
/**
- 设置请求头
*/
//httpGet.setHeader(new BasicHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"));
CloseableHttpResponse response = null;
try {
response = httpClient.execute(httpGet);if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
HttpEntity entity = response.getEntity(); String result = EntityUtils.toString(entity, "UTF-8"); EntityUtils.consume(entity); httpClient.close(); return result;
}
httpClient.close();
} catch (IOException e) {
logger.error("httpClient.doGet.error:{}", e.getMessage());
return null;
}return null;
}- 设置请求头
/**
封装 post请求
@return
*/
public static String doPost(String url) throws IOException {
String result = null;CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse response = null;
try {
HttpPost httpPost = new HttpPost(url); // 定义请求的配置
RequestConfig config = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(2000).build();
httpPost.setConfig(config); List<NameValuePair> parameters = new ArrayList<NameValuePair>(0);
parameters.add(new BasicNameValuePair("scope", "project"));
parameters.add(new BasicNameValuePair("q", "java")); // 提交参数发送请求
UrlEncodedFormEntity urlEncodedFormEntity = new UrlEncodedFormEntity(parameters); // 请求中设置请求体
httpPost.setEntity(urlEncodedFormEntity); // 如果需要,设置请求头,多个请求头
//Header[] headers = {new BasicHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8")};
//httpPost.setHeaders(headers); response = httpClient.execute(httpPost); HttpEntity entity = response.getEntity(); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { result = EntityUtils.toString(entity, "UTF-8"); EntityUtils.consume(entity);
httpClient.close();
return result;
}
} catch (Exception e) {
logger.error("httpClient.doPost.error:{}", e.getMessage());
return null;
}return null;
}
}
最新文章
- 架构师养成记--12.Concurrent工具类CyclicBarrier和CountDownLatch
- Qt实用小技巧(转)
- ASP.Net上传大文件解决方案之IIS7.0下的配置
- JavaScript Patterns 4.5 Immediate Functions
- Use a PowerShell Module to Easily Export Excel Data to CSV
- [dpdk] 读官方文档(2)
- vb 和vb.net的区别
- 用 Android-X86 和 VirtualBox 玩安卓游戏
- [转]分布式系统为什么需要 Tracing?
- UVALive 7148 LRIP 14年上海区域赛K题 树分治
- html——基础样式篇(1)
- UVa 103 - Stacking Boxes (LIS,打印路径)
- Array数组常用的5个方法
- 2017多校第10场 HDU 6180 Schedule 贪心,multiset
- 常用javascript表单验证方法
- shiro的登陆认证(shiro项目中来的一)
- 2-2、安装Filebeat
- percona-toolkit工具的使用
- python_day4
- 99乘法表的正反写 (python的写法)