我正在向 API 发出 POST 请求,并在 Swift 中成功获得响应。下面是我的代码。
private func getData(url: NSURL) {
let config: NSURLSessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration()
let session: NSURLSession = NSURLSession(configuration: config)
let dataTask: NSURLSessionDataTask = NSURLSession.sharedSession().dataTaskWithURL(url, completionHandler: {(data: NSData!, response: NSURLResponse!, error: NSError!) -> Void in
if error {
println("Error Occurred: \(error.localizedDescription)")
} else {
println("\(response.allHeaderFields)") // Error
}
})
dataTask.resume()
}
我正在尝试使用 allHeaderFields
转储 header 字段,但我收到一条错误消息,指出 NSURLResponse 没有名为 allHeaderFields 的成员。但它 does 拥有它!
语法或调用方式一定有问题。谁能告诉我如何纠正这个问题?
谢谢。
最佳答案
详细说明 Yogesh 所说的话......!
尝试使用“as”将 NSURLRespones 转换为 NSHTTPURLResponse,因为我打赌 NSURLResponse 实际上是一个 NSHTTPURLResponse,或者我打赌这是可能的。
我的意思是:
private func getData(url: NSURL) {
let config: NSURLSessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration()
let session: NSURLSession = NSURLSession(configuration: config)
let dataTask: NSURLSessionDataTask = NSURLSession.sharedSession().dataTaskWithURL(url, completionHandler: {(data: NSData!, urlResponse: NSURLResponse!, error: NSError!) -> Void in
if let httpUrlResponse = urlResponse as? NSHTTPURLResponse
{
if error {
println("Error Occurred: \(error.localizedDescription)")
} else {
println("\(httpUrlResponse.allHeaderFields)") // Error
}
}
})
dataTask.resume()
}
关于ios - NSURLResponse 没有名为 allHeaderFields 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24988471/