大家好,又见面了,我是你们的朋友全栈君。
直接上代码
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证书验证
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/126072.html原文链接:https://javaforall.cn