Bha*_*ina 18 ssl android okhttp
我正在使用OKHttp进行我的项目.我想为我的服务电话启用TLSv1.2.任何人都可以告诉我如何启用它.
据我所知,OKHttp不包含自己的SSL/TLS库,因此它只使用Android提供的标准SSLSocket.
支持(和启用)的TLS版本取决于使用的Android版本.在某些手机上支持TLS 1.2但默认情况下未启用.在这种情况下,您可以通过实现自定义包装器SSLSocketFactory来启用它,该包装器在内部使用默认的SSLSocketFactory并setEnabledProtocols(new String{"TLS1.2"})在每个创建的Socket上调用.
请参阅OkHttp的HTTPS文档.
ConnectionSpec spec = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
.tlsVersions(TlsVersion.TLS_1_2)
.cipherSuites(
CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
CipherSuite.TLS_DHE_RSA_WITH_AES_128_GCM_SHA256)
.build();
OkHttpClient client = ...
client.setConnectionSpecs(Collections.singletonList(spec));
Run Code Online (Sandbox Code Playgroud)
检查我的代码!!工作完美!
private void checkTls() {
if (android.os.Build.VERSION.SDK_INT < 21) {
try {
ProviderInstaller.installIfNeededAsync(this, new ProviderInstaller.ProviderInstallListener() {
@Override
public void onProviderInstalled() {
}
@Override
public void onProviderInstallFailed(int i, Intent intent) {
}
});
} catch (Exception e) {
finish();
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19352 次 |
| 最近记录: |