这是我幼稚的首次通过代码:
var httpUrlResponse: NSHTTPURLResponse? // = (...get from server...)
let contentType = httpUrlResponse?.allHeaderFields["Content-Type"]
我已经尝试过此代码的各种派生形式,但始终收到与allHeaderFields属性的NSDictionary类型与我只想获取String或可选String的基本阻抗不匹配有关的编译器警告/错误。
只是不确定如何强制类型。
最佳答案
您可以在Swift 3中执行以下操作:
let task = URLSession.shared.dataTask(with: url) { data, response, error in
if let httpResponse = response as? HTTPURLResponse, let contentType = httpResponse.allHeaderFields["Content-Type"] as? String {
// use contentType here
}
}
task.resume()
显然,这里是从
URLResponse
(response
变量)到HTTPURLResponse
,然后从allHeaderFields
获取数据。如果您已经有了HTTPURLResponse
,那么它会更简单,但是希望这可以说明这个想法。对于Swift 2,请参阅previous revision of this answer。
关于ios - 如何访问NSHTTPURLResponse的 “Content-Type” header ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25611908/