Swift dataTaskWithURL有时不返回
我有一个非常简单的http请求,它将返回JSON数据。这是我的密码:Swift dataTaskWithURL有时不返回,swift,ios8,nsurlsession,Swift,Ios8,Nsurlsession,我有一个非常简单的http请求,它将返回JSON数据。这是我的密码: let query = NSString(format: "http://glosbe.com/gapi/translate?from=eng&dest=eng&format=json&phrase=test",src, dest, phrase ) let url = NSURL(string: query) let task = NSURLSessi
let query = NSString(format: "http://glosbe.com/gapi/translate?from=eng&dest=eng&format=json&phrase=test",src, dest, phrase )
let url = NSURL(string: query)
let task = NSURLSession.sharedSession().dataTaskWithURL(url) {(data, response, error) in
if let httpRes = response as? NSHTTPURLResponse {
println("status code=",httpRes.statusCode)
if httpRes.statusCode == 200 {
println(NSString(data: data, encoding: NSUTF8StringEncoding))
// parse data
let phrase = Phrase.parse(data)
println(phrase.description)
}
}
}
task.resume()
有时根本不调用completionHandler。我怀疑是服务器的问题。但当我在浏览器中输入相同的url并尝试了几十次时。根本没有问题。当我刷新浏览器时,数据被全部返回
我的代码有什么错误吗?谢谢代码对我来说还可以。我建议您可以对代码进行此更改(一个
else
子句):
所以,如果出现任何问题,你会有一个更好的主意我必须说,在我看来还行——这是用于前台还是后台的应用程序?
if let httpRes = response as? NSHTTPURLResponse {
println("status code=",httpRes.statusCode)
if httpRes.statusCode == 200 {
println(NSString(data: data, encoding: NSUTF8StringEncoding))
// parse data
let phrase = Phrase.parse(data)
println(phrase.description)
}
} else {
println("error \(error)") // print the error!
}