【发布时间】:2015-07-20 20:45:13
【问题描述】:
当我从我的应用程序中使用我的 API 时,我遇到了一个奇怪的问题。有时,无缘无故地没有发送请求,并且在超时结束时失败并出现以下错误:
Error Domain=NSURLErrorDomain Code=-1001 "The request timed out."
我尝试了许多 API,例如 NSURLConnection delegates、NSURLSession 和 NSURLConnection.sendSynchronousRequest,但均未成功。
这是我为突出问题而制作的示例项目。 ConnectionBugApp
以下是重现的步骤:
- 在 Xcode 中运行应用并停止调试,以便应用在您的手机上
- 打开应用,点击测试连接(成功,加载轮立即停止转动)
- 去脸书/推特/网络游戏等其他应用(有些有点重)并切换到飞行模式几次
- 回到我的应用并点击测试连接(加载轮永远不会停止)
一些可能有帮助的细节:
如果我使用我的服务器IP而不是我的域名,它会成功
问题仅在 LTE/4G 网络上出现
任何想法或解决方法将不胜感激!欢迎询问更多详情。
谢谢
编辑
自从我第一次发布它以来,我已经对描述进行了很多编辑(希望使它更清晰、更清晰),如果某些答案或评论不再有意义,我很抱歉。
【问题讨论】:
-
如果你使用 NSURLSession API,问题会重现吗?
-
@LeoNatan,是的,我对
NSURLSession也有同样的问题 -
你在服务器端看到了什么?您是否看到服务器接受客户端连接或什至没有到达服务器?我会说它看起来像是在您的服务器中的某个地方,您正在断开连接。也许是防火墙。
-
@LeoNatan,我相信它没有到达服务器,日志中没有任何内容。 (而我可以看到客户是否被拒绝)。就像我在帖子中提到的那样,如果我锁定设备,则在我解锁后立即发送请求。
-
您在一台网络服务器上是否有任何其他网络服务器没有的安全措施?
标签: ios swift ios8 nsurlconnection