NSURLRequest在不连接服务器的情况下进行定时

时间:2015-12-21 19:39:39

标签: swift nsurlconnection nsurl nsurlrequest

我有一个用swift编写的应用程序,它使用PHP与我的服务器通信。在我的测试过程中,应用程序完美运行,直到我开始同时在多个设备上进行测试。当我尝试同时加载两个设备时,偶尔会(不是100%)创建此超时:

Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo=
{NSUnderlyingError=0x127ea9fb0 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=https://myhttpsdomain/my_page.php, NSErrorFailingURLKey=https://myhttpsdomain/my_page.php, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=The request timed out.}
Error with domain:https://myhttpsdomain/my_page.php

它创建此计时器,而无需连接到服务器。一旦触发问题,来自该设备的所有Web请求都将创建错误几分钟。

我使用基本的let task = session.dataTaskWithRequest向我的服务器发送帖子请求。

要确定是否已建立服务器连接,我的php文件中的第一行是error_log("Page has been called");并且此行甚至不打印。

1 个答案:

答案 0 :(得分:0)

这可能是以下之一:

  • DNS问题
  • 路由问题/网络问题
  • 服务器配置问题

首先,检查服务器日志,看看每当客户端放弃连接时,请求是否突然出现在日志中。如果是这样,您需要一个数据包跟踪才能确定,但​​很有可能,您的PHP脚本在发送标头之前会永远楔入,否则服务器会以某种方式错误配置。

如果没有,则嗅探网络并查看它是否发送了请求。并确保两个设备可以相互ping通。