java okhttp https_Java通过OKHttp发送https请求(忽略认证)

封装:

package gj.okhttp3;

import okhttp3.OkHttpClient;

import javax.net.ssl.SSLContext;

import javax.net.ssl.SSLSocketFactory;

import javax.net.ssl.TrustManager;

import javax.net.ssl.X509TrustManager;

import java.security.KeyManagementException;

import java.security.NoSuchAlgorithmException;

/**

* Author: areful

* Date: 2019/2/15

*/

public class OKHttpClientBuilder {

public static OkHttpClient.Builder buildOKHttpClient() {

try {

TrustManager[] trustAllCerts = buildTrustManagers();

final SSLContext sslContext = SSLContext.getInstance("SSL");

sslContext.init(null, trustAllCerts, new java.security.SecureRandom());

final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();

OkHttpClient.Builder builder = new OkHttpClient.Builder();

builder.sslSocketFactory(sslSocketFactory, (X509TrustManager) trustAllCerts[0]);

builder.hostnameVerifier((hostname, session) -> true);

return builder;

} catch (NoSuchAlgorithmException | KeyManagementException e) {

e.printStackTrace();

return new OkHttpClient.Builder();

}

}

private static TrustManager[] buildTrustManagers() {

return new TrustManager[]{

new X509TrustManager() {

@Override

public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) {

}

@Override

public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) {

}

@Override

public java.security.cert.X509Certificate[] getAcceptedIssuers() {

return new java.security.cert.X509Certificate[]{};

}

}

};

}

}

测试:

package gj.okhttp3;

import okhttp3.*;

import java.io.IOException;

import java.util.HashMap;

/**

* Author: areful

* Date: 2019/2/15

*/

public class TestOKHttpClientBuilder {

public static void main(String[] args) {

MediaType JSON = MediaType.parse("application/json; charset=utf-8");

String url = "https://www.baidu.com";

String json = "{}";

Request request = new Request.Builder()

.url(url)

.headers(Headers.of(new HashMap<>()))

.post(RequestBody.create(JSON, json))

.build();

OKHttpClientBuilder.buildOKHttpClient()

.build()

.newCall(request)

.enqueue(new Callback() {

@Override

public void onFailure(Call call, IOException e) {

System.out.println("onFailure()");

e.printStackTrace();

}

@Override

public void onResponse(Call call, Response response) {

System.out.println("onResponse()");

}

});

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值