我使用URLSession工作代码。当服务器没有响应并且请求超时时,我正在测试行为。我的请求超时时间不能超过25秒。
let session: URLSession = {
let config = URLSessionConfiguration.default
config.timeoutIntervalForRequest = <various values in seconds I fill in>
return URLSession(configuration: config)
}()
如果我设置timeoutIntervalForRequest = 5或10,请求会在5或10秒内超时,我会看到此EXPECTED错误:
错误:错误域= NSURLErrorDomain代码= -1001&#34;请求已定时 出&#34。 UserInfo = {NSUnderlyingError = 0x15e6d1020 {错误 Domain = kCFErrorDomainCFNetwork Code = -1001&#34;(null)&#34; UserInfo = {_ kCFStreamErrorCodeKey = -2102,_kCFStreamErrorDomainKey = 4}}, NSErrorFailingURLStringKey = http://10.0.0.91:8084/margtest1/DatabaseServlet,NSErrorFailingURLKey = http://10.0.0.91:8084/margtest1/DatabaseServlet,_ kCFStreamErrorDomainKey = 4,_kCFStreamErrorCodeKey = -2102,NSLocalizedDescription =请求超时。}
如果我在请求后大约25秒设置timeoutIntervalForRequest = 60(或更多),我会看到此错误日志:
错误:错误域= NSURLErrorDomain代码= -1001&#34;请求已定时 出&#34。 UserInfo = {NSUnderlyingError = 0x12d896d50 {错误 Domain = kCFErrorDomainCFNetwork Code = -1001&#34;(null)&#34; UserInfo = {_ kCFStreamErrorCodeKey = 60,_kCFStreamErrorDomainKey = 1}}, NSErrorFailingURLStringKey = http://10.0.0.91:8084/margtest1/DatabaseServlet, NSErrorFailingURLKey = http://10.0.0.91:8084/margtest1/DatabaseServlet, _kCFStreamErrorCodeKey = 60,NSLocalizedDescription =请求超时。}
CloudSync db DL失败。同步失败。
这些日志之间的区别在于,当请求超过 timeoutIntervalForRequest 时,我收到 _kCFStreamErrorCodeKey = 60 。 NSUnderlyingError也不同。
总结一下,即使我设置了timeoutIntervalForRequest&gt;,我的请求也会在大约25秒内超时。 25.当发生这种情况时,我看到-kCFStreamErrorCodeKey = 60。
我花了几个小时上网搜索解释或调试方法。您能否建议如何解决此问题或调试此类问题的方法?提前致谢!