什么是httpClient
HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。
HttpClient的主要功能
1.实现了所有 HTTP 的方法(GET、POST、PUT、HEAD、DELETE、HEAD、OPTIONS 等)
2.支持 HTTPS 协议
3.支持代理服务器(Nginx等)等
4.支持自动(跳转)转向
导入依赖
<!--CloseableHttpClient-->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.5</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
GET请求
/**
* 以get方式调用第三方接口
* @param url
* @return
*/
public static String doGet(String url, String token){
//创建HttpClient对象
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
HttpGet get = new HttpGet(url);
try {
if (tokenString != null && !tokenString.equals("")){
tokenString = getToken();
}
//api_gateway_auth_token自定义header头,用于token验证使用
get.addHeader("api_gateway_auth_token", tokenString);
get.addHeader("Content-Type", "application/json;charset=utf8");
HttpResponse response = httpClient.execute(get);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
//返回json格式
String res = EntityUtils.toString(response.getEntity());
return res;
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
POST请求
/**
* 以post方式调用第三方接口
* @param url
* @param json
* @return
*/
public static String doPost(String url, JSONObject json){
try {
if (httpClient == null){
httpClient = HttpClientBuilder.create().build();
}
HttpPost post = new HttpPost(url);
if (tokenString != null && !tokenString.equals("")){
tokenString = getToken();
}
//api_gateway_auth_token自定义header头,用于token验证使用
post.addHeader("api_gateway_auth_token", tokenString);
post.addHeader("Content-Type", "application/json;charset=utf8");
StringEntity s = new StringEntity(json.toString());
s.setContentEncoding("UTF-8");
//发送json数据需要设置contentType
s.setContentType("application/x-www-form-urlencoded");
//设置请求参数
post.setEntity(s);
HttpResponse response = httpClient.execute(post);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
//返回json格式
String res = EntityUtils.toString(response.getEntity());
return res;
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if (httpClient != null){
try {
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
版权声明:本文为winerpro原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。