NSURLResponse没有名为allHeaderFields的成员

Isu*_*uru 0 post nsurlrequest http-headers ios swift

我正在向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()
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用转储头字段allHeaderFields但是我收到一个错误,说NSURLResponse没有名为allHeaderFields的成员.但确实有它!

语法或我调用它的方式一定有问题.谁能告诉我如何纠正这个问题?

谢谢.

Eth*_*han 11

详细说明Yogesh所说的......!

尝试将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()
}
Run Code Online (Sandbox Code Playgroud)