package doumeemes.core.utils;
|
|
import com.alibaba.fastjson.JSONObject;
|
import org.apache.http.HttpEntity;
|
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.conn.ssl.NoopHostnameVerifier;
|
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
|
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
|
import org.apache.http.entity.StringEntity;
|
import org.apache.http.impl.client.CloseableHttpClient;
|
import org.apache.http.impl.client.HttpClients;
|
import org.apache.http.ssl.SSLContexts;
|
import org.apache.http.util.EntityUtils;
|
import org.springframework.web.util.UriComponentsBuilder;
|
|
import java.io.IOException;
|
import java.security.KeyManagementException;
|
import java.security.NoSuchAlgorithmException;
|
import java.security.SecureRandom;
|
import java.security.cert.CertificateException;
|
import java.security.cert.X509Certificate;
|
import java.util.Map;
|
|
public class HttpsUtil {
|
|
|
public static String sendPostByHttps(String url, Map<String, String> body, String token) {
|
|
CloseableHttpResponse response = null;
|
// 处理请求路径
|
url = UriComponentsBuilder.fromHttpUrl(url)
|
.toUriString();
|
//创建httpclient对象
|
CloseableHttpClient client = null;
|
String respBody;
|
try {
|
client = HttpClients.custom()
|
.setSSLSocketFactory(new SSLConnectionSocketFactory(SSLContexts.custom()
|
//忽略掉对服务器端证书的校验
|
.loadTrustMaterial(null, new TrustSelfSignedStrategy())
|
.build(), NoopHostnameVerifier.INSTANCE))
|
.build();
|
//创建post方式请求对象
|
HttpPost httpPost = new HttpPost(url);
|
// 请求头设置
|
httpPost.setHeader("Accept", "*/*");
|
httpPost.setHeader("connection", "Keep-Alive");
|
httpPost.setHeader("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
|
httpPost.setHeader("Content-type", "application/json;charset=utf-8");
|
httpPost.setHeader("Authorization", token);//如果需要token请修改传入自己的token以及Authorization
|
// 情求体设置
|
if (body != null) {
|
httpPost.setEntity(new StringEntity(JSONObject.toJSONString(body), "utf-8"));
|
}
|
//执行请求操作,并拿到结果
|
response = client.execute(httpPost);
|
//获取结果实体
|
HttpEntity entity = response.getEntity();
|
if (entity != null) {
|
respBody = EntityUtils.toString(entity);
|
return respBody;
|
}
|
} catch (Exception e) {
|
} finally {
|
try {
|
if (client != null) {
|
client.close();
|
}
|
if (response != null) {
|
response.close();
|
}
|
} catch (IOException e) {
|
}
|
}
|
|
return null;
|
}
|
public static String sendGetByHttps(String url,String token) {
|
|
CloseableHttpResponse response = null;
|
// 处理请求路径
|
url = UriComponentsBuilder.fromHttpUrl(url)
|
.toUriString();
|
//创建httpclient对象
|
CloseableHttpClient client = null;
|
String respBody;
|
try {
|
client = HttpClients.custom()
|
.setSSLSocketFactory(new SSLConnectionSocketFactory(SSLContexts.custom()
|
//忽略掉对服务器端证书的校验
|
.loadTrustMaterial(null, new TrustSelfSignedStrategy())
|
.build(), NoopHostnameVerifier.INSTANCE))
|
.build();
|
//创建post方式请求对象
|
HttpGet httpPost = new HttpGet(url);
|
// 请求头设置
|
httpPost.setHeader("Accept", "*/*");
|
httpPost.setHeader("connection", "Keep-Alive");
|
httpPost.setHeader("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
|
httpPost.setHeader("Content-type", "application/json;charset=utf-8");
|
httpPost.setHeader("Authorization", token);//如果需要token请修改传入自己的token以及Authorization
|
|
//执行请求操作,并拿到结果
|
response = client.execute(httpPost);
|
//获取结果实体
|
HttpEntity entity = response.getEntity();
|
if (entity != null) {
|
respBody = EntityUtils.toString(entity);
|
return respBody;
|
}
|
} catch (Exception e) {
|
} finally {
|
try {
|
if (client != null) {
|
client.close();
|
}
|
if (response != null) {
|
response.close();
|
}
|
} catch (IOException e) {
|
}
|
}
|
|
return null;
|
}
|
|
|
|
public static void main(String[] args) {
|
//局部信任所有证书和主机
|
String result = HttpsUtil.sendGetByHttps("http://localhost/x_organization_assemble_express/jaxrs/person/63c288ff-f04d-4e63-b1b8-35071b13ad0e?x-token=B6oxLY3qj4QVaDvi7QiV5AcSIf_M1oiifPjFnXf7xOnFD0FL3f1lFhM2xIcT3GGMf3vrW27MZuMUAvXn08hwUmRiV20q5VtNEMYSA2ic85o",null);
|
System.out.println(result);
|
|
|
}
|
|
|
}
|