如何检索请求的Alamofire响应头

qbo*_*qbo 18 swift alamofire

如何检索请求的响应标头?以下是我提出的要求.

Alamofire.request(.GET, requestUrl, parameters:parameters, headers: headers)
        .responseJSON { response in switch response.result {
        case .Success(let JSON):

            ...

        case .Failure(let error):

            ...

    }
Run Code Online (Sandbox Code Playgroud)

提前致谢!

kam*_*soc 42

如果响应是类型,NSHTTPURLResponse您可以从中获取标题response.allHeaderFields.

因此,当您使用Alamofire responseJSON时,您可以访问NSHTTPURLResponse属性,如下所示:

Alamofire.request(.GET, requestUrl, parameters:parameters, headers: headers).responseJSON {
        response in
        print(response.response?.allHeaderFields)
}
Run Code Online (Sandbox Code Playgroud)

正如苹果文档所说:

包含作为服务器响应的一部分接收的所有HTTP头字段的字典.通过检查此字典,客户端可以看到HTTP服务器返回的"原始"标头信息.

此字典中的键是从服务器接收的标题字段名称.有关常用HTTP头字段的列表,请参阅RFC 2616.

因此,要获得响应头中的内容类型,您可以通过以下方式访问它:

if let contentType = response.response?.allHeaderFields["Content-Type"] as? String {
        // use contentType here
}
Run Code Online (Sandbox Code Playgroud)