com.alibaba.sdk.android.oss.ClentException:
SSL handshake aborted:ssl=0x64e9f958: I/Oerror during system call,Connection reset by peer
集成阿里云oss SDk后,Android上传下载功能一直没有问题,昨天Android系统4.2手机上传下载失败,报上边错误
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到这个错误提示,通常意味着在进行SSL握手过程中出现了问题,导致连接被重置。这可能是由多种原因引起的,包括但不限于网络问题、SSL证书不被信任、客户端或服务器的SSL配置问题等。针对你的情况,可以尝试以下几个解决方案:
更新SDK版本:确保你使用的阿里云OSS SDK是最新版本。新版本可能已经修复了已知的兼容性问题。
检查网络环境:由于这个问题出现在特定的Android 4.2设备上,可能与该设备的网络环境有关。尝试在不同的网络环境下测试,看是否能重现问题。
SSL证书验证:虽然阿里云OSS服务应该使用的是广泛信任的SSL证书,但某些旧设备或定制系统可能因为根证书不完整而无法正确验证SSL证书。你可以尝试在应用中禁用SSL证书验证(注意,这会降低安全性,仅作为调试手段),以判断是否为证书验证问题。如果这样做解决了问题,那么需要查找并安装缺失的根证书到设备上。
设置SSL协议和加密套件:在初始化OSSClient时,可以尝试指定更兼容的SSL协议版本和加密套件。例如,如果你当前没有特别指定,可以尝试显式指定TLSv1.2(前提是Android 4.2支持此版本)。
// 注意:以下代码仅为示例,实际使用时请根据阿里云OSS SDK文档调整
OkHttpUtils.initClient(new OkHttpClient.Builder()
.sslSocketFactory(SSLSocketFactoryCompat.buildForTlsV12())
.hostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String hostname, SSLSession session) {
return true; // 或者实现适当的主机名验证逻辑
}
})
.build());
查看日志:详细查看阿里云OSS SDK的日志输出,以及设备上的系统日志,可能会提供更多关于SSL握手失败的具体原因。
用户反馈:考虑到这是在特定设备和操作系统版本上出现的问题,收集受影响用户的设备信息和具体操作步骤,向阿里云技术支持反馈,以便他们能够进一步分析并提供针对性的解决方案。
记得在生产环境中不要长期关闭SSL验证或使用不安全的配置,确保应用的安全性。希望这些建议能帮助你解决问题。