1

我正在使用 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

我会很感激一些帮助家伙!

4

1 回答 1

0

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

您可以放心地假设它会在三分钟内成功或超时。在蜂窝网络上,20 秒甚至是不寻常的。

您可能应该重新考虑您正在使用此 URL 做什么以及为什么要这样做,或者至少尝试找出一种方法来避免在您获取 URL 时让用户等待。

于 2016-05-18T21:22:06.573 回答