我有一个iOS应用,在循环意义上,我多次调用同一API。即调用第一个API->获取响应,进行解析->保存到本地->再次调用相同的API ...依此类推。所以在这个流程中。在某个地方,请求超时,我收到以下日志:
Task <E49E4BD3-882E-4FFE-A6E1-75E28102CC20>.<7> load failed with error
Error Domain=NSURLErrorDomain Code=-1001 "The request timed out."
UserInfo={_kCFStreamErrorCodeKey=-2102,
NSUnderlyingError=0x600000f28ed0 {Error Domain=kCFErrorDomainCFNetwork
Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102,
_kCFStreamErrorDomainKey=4}},
_NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <E49E4BD3-882E-
4FFE-A6E1-75E28102CC20>.<7>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
"LocalDataTask <E49E4BD3-882E-4FFE-A6E1-75E28102CC20>.<7>"
), NSLocalizedDescription=The request timed out.,
NSErrorFailingURLStringKey=https://api.domainname.com/getDataApi,
NSErrorFailingURLKey=https://api.domainname.com/getDataApi,
_kCFStreamErrorDomainKey=4} [-1001]
它可以正常运行很多次。标头和参数正确。我尝试将这些请求放入NSOperationQueue调度组中。但它的工作原理相同。我也尝试使用NSURLSession而不是Alamofire。不用找了。它在iPhone X上经常发生,在其他设备上很少见。我调用API的次数过多,因为数据大约是30-40 000条记录,每个API返回1000条记录。有时第一个API失败,有时在几次点击后失败。它是随机的。发生故障时,互联网连接良好。流媒体,浏览可以同时正常工作。但是API会使请求超时。尝试增加请求的超时间隔。我发送的参数/标题没有问题,因为相同的api有时可以正常工作,有时会失败。所有设备返回的数据也相同。