Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios dataTaskWithRequest对于非常特定的字符串花费的时间太长_Ios_Iphone_Swift_Nsurlsession_Nsurlsessiondatatask - Fatal编程技术网

Ios dataTaskWithRequest对于非常特定的字符串花费的时间太长

Ios dataTaskWithRequest对于非常特定的字符串花费的时间太长,ios,iphone,swift,nsurlsession,nsurlsessiondatatask,Ios,Iphone,Swift,Nsurlsession,Nsurlsessiondatatask,我正在使用swift创建一个IOS应用程序。 最近,我遇到了一个奇怪的错误。 我试图检查url是否有效,因此,我正在使用url创建一个请求并检查响应。我使用NSUrlSession请求的DataTaskWith执行此任务。 奇怪的错误是,如果URL是alibaba,那么响应会在很长一段时间后返回(有时超过20秒)。 为什么会这样? 就我而言,它只发生在这个特定的url上。 下面是一些代码,尽管它不是必需的 let request = NSMutableURLRequest(URL: valida

我正在使用swift创建一个IOS应用程序。 最近,我遇到了一个奇怪的错误。 我试图检查url是否有效,因此,我正在使用url创建一个请求并检查响应。我使用NSUrlSession请求的DataTaskWith执行此任务。 奇怪的错误是,如果URL是
alibaba
,那么响应会在很长一段时间后返回(有时超过20秒)。 为什么会这样? 就我而言,它只发生在这个特定的url上。 下面是一些代码,尽管它不是必需的

let request = NSMutableURLRequest(URL: validatedUrl)
        request.HTTPMethod = "HEAD"

        let session = NSURLSession.sharedSession()

        let task = session.dataTaskWithRequest(request){ data, response, error in
            // The response here returns after a very long time
            let url = request.URL!.absoluteString

我会很感激你们的帮助

您正在通过Internet检索URL的内容。发生这种情况的速度是任意的。它取决于查找主机名的DNS服务器的速度、响应请求的web服务器的速度、用户的Internet连接速度以及两者之间的每个网络的速度

您可以放心地假设它将在三分钟内成功或超时。在蜂窝网络上,20秒甚至没有什么不寻常之处


您可能应该重新考虑使用此URL的方式和原因,或者至少尝试找出一种方法,避免用户在获取URL时等待。

您正在通过Internet检索URL的内容。发生这种情况的速度是任意的。它取决于查找主机名的DNS服务器的速度、响应请求的web服务器的速度、用户的Internet连接速度以及两者之间的每个网络的速度

您可以放心地假设它将在三分钟内成功或超时。在蜂窝网络上,20秒甚至没有什么不寻常之处


您可能应该重新考虑使用此URL的方式和原因,或者至少尝试找出一种方法,避免用户在获取URL时等待。

这没有意义。我检查是否没有结果,因此超时对我来说不好,因为它将导致相同的响应(并且它仍将有很长的等待时间,我不希望),此外,它不会发生在其他字符串中,因此它不可能是它。这没有意义。我检查是否没有结果,所以超时对我来说不好,因为它将导致相同的响应(并且它仍将有很长的时间等待,我不希望),此外,它不会发生在其他字符串中,所以它不可能是它。嘿,这段代码用于在我的应用程序中实现浏览器。用户输入任何url,如果找不到该url,它将重定向到google搜索。这就是我认为我可以做到的,你知道我如何避免这个问题吗,也许是用另一种方法?这可能是让用户等待的唯一有效原因。毕竟,用户请求了这个页面,他们可能希望它出现。如果我正在实现它,我可能会设置大约5秒的计时器,如果您还没有收到来自服务器的初始响应(
…didReceiverResponse:…
),然后试着找出是A.暂时的网络故障还是B.永久性的问题。试着同时打开两个额外的数据任务,一个用于谷歌的generate_204站点,另一个用于原始URL。如果对URL的第二次尝试响应为200,则取消原始请求并显示结果。如果原始请求完成,请取消其他请求并显示结果。五秒钟后,如果两个附加请求都没有响应,请取消它们,因为网络已死机。如果generate_204在这5秒钟的窗口内响应,则显示“仍在等待。服务器正在变慢”消息,并给用户一个按钮以取消并改为搜索。嘿,此代码用于在我的应用程序中实现浏览器。用户输入任何url,如果找不到该url,它将重定向到google搜索。这就是我认为我可以做到的,你知道我如何避免这个问题吗,也许是用另一种方法?这可能是让用户等待的唯一有效原因。毕竟,用户请求了这个页面,他们可能希望它出现。如果我正在实现它,我可能会设置大约5秒的计时器,如果您还没有收到来自服务器的初始响应(
…didReceiverResponse:…
),然后试着找出是A.暂时的网络故障还是B.永久性的问题。试着同时打开两个额外的数据任务,一个用于谷歌的generate_204站点,另一个用于原始URL。如果对URL的第二次尝试响应为200,则取消原始请求并显示结果。如果原始请求完成,请取消其他请求并显示结果。五秒钟后,如果两个附加请求都没有响应,请取消它们,因为网络已死机。如果generate_204在这5秒钟的窗口内响应,则显示“仍在等待。服务器运行缓慢”消息,并给用户一个按钮以取消并改为搜索。