ASIHTTPRequest 错误,代码 2,在实际 iPad 上
我有一个程序,可以异步下载 4 个文件到 ipad 的 Documents 文件夹中,这在模拟器上运行得很好,但是当我在实际的 ipad 上使用它时,它会出现以下错误:
Error Domain=ASIHTTPRequestErrorDomain Code=2 “请求超时” UserInfo=0x1c0810 {NSLocalizedDescription=请求超时}
有什么办法可以解决这个问题,或者延长时间直到超时?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您在模拟器中获得更好结果的原因可能是因为模拟器使用内置网卡,而您的 Mac 网卡可能比 iPad 中的网卡更强。
您可以使用以下代码来更改超时间隔。此代码将超时设置为二十秒:
[request setTimeOutSeconds:20]
根据 ASIHTTPRequest“如何使用”页面,您可以告诉 ASIHTTPRequest 重试 N 次,如下所示:
[request setNumberOfTimesToRetryOnTimeout:2];
编辑:
虽然现在是 2016 年, ASIHTTPRequest 早已被弃用,还有另一个有用的信息可以帮助诊断 iOS 设备上的网络问题。尝试使用网络链接调节器。它随 iOS 一起提供,并且可以在 macOS 上下载。
NSHipster 的这篇文章(链接)提供了一些有关设置的重要信息。
The reason why you are getting better results in the simulator is probably because the simulator uses the built in network card and your Mac's network card is likely stronger than the one in the iPad.
You can use the following code to change the timeout interval. This code will set the timeout to twenty seconds:
[request setTimeOutSeconds:20]
According to the ASIHTTPRequest "How to Use" page, you can tell ASIHTTPRequest to try again N times, like so:
[request setNumberOfTimesToRetryOnTimeout:2];
EDIT:
Although it's 2016 and ASIHTTPRequest is long since deprecated, there's another useful bit of information to help diagnose networking issues on iOS devices. Try using the Network Link Conditioner. It ships with iOS and can be downloaded on macOS.
This article (link) from NSHipster has some great information on getting set up.
造成这个问题的原因可能有以下几个。当我们发送
httprequest
并且没有收到服务器的响应时,但此时您再次发送另一个httprequest
,并且在第一个请求之前收到第二个请求响应。Cause of this problem may be the following. When we send a
httprequest
and don't received response from server but at this time you send anotherhttprequest
again and with second request response is received before first request.