OKHttp请求https证书验证
2018-03-15 15:18
447 查看
拿到srca.cer证书放入assets文件中
private static SSLSocketFactory sslSocketFactory = null; public static void getSocketFactory() { try { InputStream certificate = MyApplication.mContext.getAssets().open("srca.cer"); CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509"); KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); keyStore.load(null); int index = 0; String certificateAlias = Integer.toString(index++); keyStore.setCertificateEntry(certificateAlias, certificateFactory.generateCertificate(certificate)); try { if (certificate != null) certificate.close(); } catch (IOException e) { e.printStackTrace(); } SSLContext sslContext = SSLContext.getInstance("TLS"); TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); trustManagerFactory.init(keyStore); sslContext.init ( null, trustManagerFactory.getTrustManagers(), new SecureRandom() ); sslSocketFactory = sslContext.getSocketFactory(); } catch (Exception e) { e.printStackTrace(); } } /** * get请求 **/ public void sendGetRepuest(String url, final CallBacks callbacks) { final Request request = new Request.Builder().url(url).build(); client.newBuilder().connectTimeout(timeOut, TimeUnit.SECONDS) .readTimeout(timeOut, TimeUnit.SECONDS) .writeTimeout(timeOut, TimeUnit.SECONDS) .sslSocketFactory(sslSocketFactory)//设置sslSocketFactory .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { callbacks.onError(e.toString()); } //解析成功 @Override public void onResponse(Call call, Response response) throws IOException { if (response != null && response.isSuccessful()) { callbacks.onSuccess(response.body().string()); } else { callbacks.onError(response.toString()); } } }); } public class MyApplication extends Application { public static Context mContext = null; @Override public void onCreate() { super.onCreate(); mContext = this; OkHttpUtils.getSocketFactory(); } }
相关文章推荐
- OKHttp HTTPS 请求支持所有Https服务器 证书验证忽略客户端证书,(3)
- OKHttp HTTPS 请求证书验证 PEM证书
- java Android OKHttp HTTPS 请求证书验证 PEM证书(1)
- java androidOKHttp HTTPS 请求证书验证 PFX证书(2)
- OkHttp3封装,可链式调用,目前包括post,get,上传、下载文件,及https请求加证书
- Java使用HttpsURLConnection进行Get和Post请求(绕过证书验证)
- 发送https请求时绕过证书验证
- 开启Charles情况下requests 请求https遇到证书验证错误的解决方法
- Https请求忽略证书验证最新实现
- OkHttp关于https证书的请求
- iOS https请求 忽略证书验证
- https 证书验证 okhttp https设置
- java请求https地址如何绕过证书验证?
- AFNetworking 3.0 https请求忽略证书验证
- okhttp使用https忽略证书验证
- 验证 HTTPS 请求的证书(五)
- Https请求忽略证书验证最新实现
- 验证 HTTPS 请求的证书(五)
- 在 .NET 中远程请求 https 内容时,发生错误:根据验证过程,远程证书无效。
- 关于httpclient 请求https (如何绕过证书验证)