我有一个用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");
并且此行甚至不打印。
答案 0 :(得分:0)
这可能是以下之一:
首先,检查服务器日志,看看每当客户端放弃连接时,请求是否突然出现在日志中。如果是这样,您需要一个数据包跟踪才能确定,但很有可能,您的PHP脚本在发送标头之前会永远楔入,否则服务器会以某种方式错误配置。
如果没有,则嗅探网络并查看它是否发送了请求。并确保两个设备可以相互ping通。