一尘不染

如何检索请求的Alamofire响应标头

swift

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

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

            ...

        case .Failure(let error):

            ...

    }

提前致谢!


阅读 214

收藏
2020-07-07

共1个答案

一尘不染

如果响应为类型,则NSHTTPURLResponse可以从获取标头response.allHeaderFields

因此,当您使用Alamofire responseJSON时,可以像这样访问NSHTTPURLResponse属性:

Alamofire.request(.GET, requestUrl, parameters:parameters, headers: headers).responseJSON {
        response in
        print(response.response?.allHeaderFields)
}

正如苹果文件所说:

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

该词典中的关键字是从服务器收到的标头字段名称。有关常用的HTTP标头字段的列表,请参阅RFC 2616。

因此,例如要获取响应标头中的内容类型,您可以通过以下方式进行访问:

if let contentType = response.response?.allHeaderFields["Content-Type"] as? String {
        // use contentType here
}
2020-07-07