我正在使用 swift 创建一个 IOS 应用程序。
最近,我遇到了一个奇怪的错误。
我正在尝试检查 url 是否有效,因此,我正在使用 url 创建请求并检查响应。我使用 NSUrlSession 的 dataTaskWithRequest 来完成这个任务。
奇怪的错误是,如果 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 连接速度以及中间每个网络的速度。
您可以安全地假设它会在三分钟内成功或超时。在蜂窝网络中,二十秒甚至都算不上异常。
您可能应该重新考虑您正在使用此 URL 做什么以及为什么这样做,或者至少尝试找出一种方法来避免在您获取 URL 时让用户等待。
关于ios - dataTaskWithRequest 对于一个非常具体的字符串花费的时间太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37307686/