URL 的数据任务超时
Data task with URL timed out
我正在尝试访问一个网站。我正在使用 dataTaskWithURL
请求。
这是我的代码:
let task = NSURLSession.sharedSession().dataTaskWithURL(url, completionHandler: { (data, response, error) in
print("2")
if let urlContent = data {
print("3")
let stringContent = NSString(data: urlContent, encoding: NSUTF8StringEncoding)!
let arr = stringContent.componentsSeparatedByString("<b>The computer's solutions will appear below</b><br>")
let second = arr[1]
let newArr = second.componentsSeparatedByString("</tr></table></center><p align=\"center\">")
let results = newArr[0]
self.resultsLabel.text = results
self.stopActivity()
} else {
print(error)
self.stopActivity()
}
})
task.resume()
我也在主块上尝试了运行这段代码:
dispatch_async(dispatch_get_main_queue(), {() -> Void in
// Code
})
然而,这些都没有成功。我反复收到以下错误
Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={NSUnderlyingError=0x7ff0a3f4c6e0 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=THE URL I AM TRYING TO ACCESS, NSErrorFailingURLKey=THE URL I AM TRYING TO ACCESS, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=The request timed out.})
我也尝试查看 and this one。但是,我对他们没有成功。该网站加载速度相当快。我该如何摆脱这个错误?
这可能是由多种原因引起的;如果问题发生在模拟器中,我建议按照下面 SO 帖子中的建议重新启动它:
- Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost."
- Error: Error Domain=NSURLErrorDomain Code=-1001 "The request timed out."
- NSURLErrorDomain Code=-1001 error when a http post request is sent
- Undocumented NSURLErrorDomain error codes (-1001, -1003 and -1004) using StoreKit
- How to use NSURLSessionDataTask in Swift
打印 response
也可能有助于查看 HTTP headers 是否可以提供线索。
我意识到我使用的是 https://
而不是 http://
。
我正在尝试访问一个网站。我正在使用 dataTaskWithURL
请求。
这是我的代码:
let task = NSURLSession.sharedSession().dataTaskWithURL(url, completionHandler: { (data, response, error) in
print("2")
if let urlContent = data {
print("3")
let stringContent = NSString(data: urlContent, encoding: NSUTF8StringEncoding)!
let arr = stringContent.componentsSeparatedByString("<b>The computer's solutions will appear below</b><br>")
let second = arr[1]
let newArr = second.componentsSeparatedByString("</tr></table></center><p align=\"center\">")
let results = newArr[0]
self.resultsLabel.text = results
self.stopActivity()
} else {
print(error)
self.stopActivity()
}
})
task.resume()
我也在主块上尝试了运行这段代码:
dispatch_async(dispatch_get_main_queue(), {() -> Void in
// Code
})
然而,这些都没有成功。我反复收到以下错误
Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={NSUnderlyingError=0x7ff0a3f4c6e0 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=THE URL I AM TRYING TO ACCESS, NSErrorFailingURLKey=THE URL I AM TRYING TO ACCESS, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=The request timed out.})
我也尝试查看
这可能是由多种原因引起的;如果问题发生在模拟器中,我建议按照下面 SO 帖子中的建议重新启动它:
- Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost."
- Error: Error Domain=NSURLErrorDomain Code=-1001 "The request timed out."
- NSURLErrorDomain Code=-1001 error when a http post request is sent
- Undocumented NSURLErrorDomain error codes (-1001, -1003 and -1004) using StoreKit
- How to use NSURLSessionDataTask in Swift
打印 response
也可能有助于查看 HTTP headers 是否可以提供线索。
我意识到我使用的是 https://
而不是 http://
。