直接上代码
public static String test(String url, String head, String body) throws Exception {
// 创建okHttpClient实例,忽略https证书验证
OkHttpClient client = new OkHttpClient().newBuilder()
.sslSocketFactory(getSSLSocketFactory())
.hostnameVerifier(getHostnameVerifier())
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody requestBody = RequestBody.create(mediaType, body);
Request request = new Request.Builder()
.url(url)
.post(requestBody)
.addHeader("cache-control", "no-cache")
.addHeader("reqParamter", head)
.build();
Response response = client.newCall(request).execute();
String result = response.body().string();
return result;
}
/**
* description 忽略https证书验证
*
* @author yanzy
* @version 1.0
* @date 2021/9/8 14:42
*/
public static HostnameVerifier getHostnameVerifier() {
HostnameVerifier hostnameVerifier = new HostnameVerifier() {
@Override
public boolean verify(String s, SSLSession sslSession) {
return true;
}
};
return hostnameVerifier;
}
/**
* description 忽略https证书验证
*`在这里插入代码片`
* @author yanzy
* @version 1.0
* @date 2021/9/8 14:42
*/
public static SSLSocketFactory getSSLSocketFactory() {
try {
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, getTrustManager(), new SecureRandom());
return sslContext.getSocketFactory();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
/**
* description 忽略https证书验证
*
* @author yanzy
* @version 1.0
* @date 2021/9/8 14:42
*/
private static TrustManager[] getTrustManager() {
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) {
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[]{
};
}
}
};
return trustAllCerts;
}
下一篇是 httpClient 如何忽略https证书验证