
最近现场发现下载大文件的时候,会发生请求失败,报错:socketTimeOutException,
解决方法:删除这个依赖(替换依旧存在此类问题,这能删除)

原因分析:因为在源码中存在这样一个方法:
interface Factory {
DownloadConnection create(String url) throws IOException;
}
这个方法有两个实现方法体,一个是自带的DownLoadUrlConnection,一个就是DownLoadHttp3UrlConnection。
而关键就在于这,DownLoadHttp3UrlConnection这个方法中,默认连接、读取、写入时间是10秒!!!
如果不删掉 okhttp1.0.5 这个依赖,就会默认走DownLoadHttp3UrlConnection,所以只能删掉这个依赖,使其只能走DownLoadUrlConnection

还有一种情况:就是每次下载时,下载过程中意外结束问题,发生的时间间隔固定,由此可以推断出是流的意外结束,是因为服务器端请求时间超时,我们只需修改服务器请求时间即可
本文探讨了下载大文件时遇到的socketTimeoutException问题,根源在于OkHttp1.0.5的DownLoadHttp3UrlConnection方法设置了10秒超时。解决办法是移除该依赖,切换回默认的DownLoadUrlConnection。另一种可能是服务器端请求超时,调整服务器设置即可。
2万+

被折叠的 条评论
为什么被折叠?



