引入jar包
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
代码,支持post get
package com.test.util;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.security.cert.X509Certificate;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class HttpUtil {
public static void main(String[] args) {
doPost("","",new HashMap<>(),new HashMap<>());
}
/**
*
* @param jsonString String jsonString = JSON.toJSONString(build); body数据
* @param url 请求地址
* @param headerParams 请求头数据
* @param queryParams ?传参数据
* @return
*/
private static JSONObject doPost(String jsonString, String url,Map<String, String> headerParams, Map<String, Object> queryParams) {
CloseableHttpClient client = createSSLClientDefault();
URIBuilder uriBuilder = null;
JSONObject jsonObject2 = null;
try {
if(queryParams!=null){
Iterator<String> iter = queryParams.keySet().iterator();
url = url + "?";
while (iter.hasNext()) {
String key = iter.next();
url = url + key + "=" + queryParams.get(key) + "&";
}
url = url.substring(0, url.lastIndexOf("&"));
}
uriBuilder = new URIBuilder(url);
HttpPost httpPost = new HttpPost(uriBuilder.build());
if(headerParams!=null){
Iterator<String> iter = headerParams.keySet().iterator();
while (iter.hasNext()) {
String key = iter.next();
httpPost.addHeader(key, headerParams.get(key));
}
}
HttpEntity entity = new StringEntity(jsonString, ContentType.create("application/json", "utf-8"));
httpPost.setEntity(entity);
HttpResponse response = client.execute(httpPost);
HttpEntity responseEntity = response.getEntity();
String resultString = EntityUtils.toString(responseEntity);
jsonObject2 = JSONObject.parseObject(resultString);
} catch (Exception e) {
e.printStackTrace();
}
return jsonObject2;
}
/**
*
* @param url 请求地址
* @param headerParams 请求头数据
* @param queryParams ?传参数据
* @return
*/
private static JSONObject doGet( String url,Map<String, String> headerParams, Map<String, Object> queryParams) {
CloseableHttpClient client = createSSLClientDefault();
URIBuilder uriBuilder = null;
JSONObject jsonObject2 = null;
try {
if(queryParams!=null){
Iterator<String> iter = queryParams.keySet().iterator();
url = url + "?";
while (iter.hasNext()) {
String key = iter.next();
url = url + key + "=" + queryParams.get(key) + "&";
}
url = url.substring(0, url.lastIndexOf("&"));
}
uriBuilder = new URIBuilder(url);
HttpGet httpGet = new HttpGet(uriBuilder.build());
if(headerParams!=null){
Iterator<String> iter = headerParams.keySet().iterator();
while (iter.hasNext()) {
String key = iter.next();
httpGet.addHeader(key, headerParams.get(key));
}
}
HttpResponse response = client.execute(httpGet);
HttpEntity responseEntity = response.getEntity();
String resultString = EntityUtils.toString(responseEntity);
jsonObject2 = JSONObject.parseObject(resultString);
} catch (Exception e) {
e.printStackTrace();
}
return jsonObject2;
}
/**
* 获取https客户端
*
* @return https客户端
*/
private static CloseableHttpClient createSSLClientDefault() {
try {
X509TrustManager x509mgr = new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] xcs, String string) {
}
public void checkServerTrusted(X509Certificate[] xcs, String string) {
}
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, new TrustManager[]{x509mgr}, null);
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
return HttpClients.custom().setSSLSocketFactory(sslsf).build();
} catch (Exception e) {
e.getMessage();
}
return null;
}
}