微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 如何访问NSHTTPURLResponse的“Content-Type”头文件?

这是我天真的第一个通行证:
var httpUrlResponse: NSHTTPURLResponse? // = (...get from server...)
let contentType = httpUrlResponse?.allHeaderFields["Content-Type"]

我已经尝试了这个代码的各种派生,但是我不断得到编译器的警告/错误,与所有的HibernateFields属性的NSDictionary类型之间的基本阻抗不匹配以及我想要获取一个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(响应变量)转到HTTPURLResponse,并从allHeaderFields获取数据.如果你已经有了HTTPURLResponse,那么这样做比较简单,但希望这样说明了这个想法.

对于Swift 2,请参阅previous revision of this answer.

原文地址:https://www.jb51.cc/iOS/335004.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐