我正在使用REST api连接ssl https上的服务器 问题是在android kitkat设备上。所有带有kitkat版本或4.x.x的设备都没有与服务器连接
javax.net.ssl.SSLException: Connection closed by peer at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
在4.x.x以上的所有设备上正常工作并进行连接
有没有解决方案。我也尝试过OkHttp,这也不适用于我的事业。
答案 0 :(得分:3)
之前我遇到过类似的问题,我的端点使用TLS 1.2进行加密。如果您的终端使用https
,您可以尝试更改为http
以进行未加密的api呼叫。如果这是一个选项。
如果您只在Google Play Services
的设备上发布应用,则可以使用ProviderInstaller
为TLS 1.2提供支持
fun installSecurityProvider() {
try {
ProviderInstaller.installIfNeeded(activity)
} catch (e: GooglePlayServicesRepairableException) {
handlePlayServicesError(e.connectionStatusCode)
} catch (e: GooglePlayServicesNotAvailableException) {
handleCriticalFailure()
}
}
https://developer.android.com/training/articles/security-gms-provider.html
在okhttp git页面上打开了一个问题,讨论了这个问题。
https://github.com/square/okhttp/issues/3098
如果依赖游戏服务不是一种选择,那么就可以实现自己。
https://github.com/square/okhttp/issues/2372#issuecomment-244807676