直接上代码
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.net/203912.html原文链接:https://javaforall.net
