如何检索请求的响应标头?以下是我提出的要求。
Alamofire.request(.GET, requestUrl, parameters:parameters, headers: headers) .responseJSON { response in switch response.result { case .Success(let JSON): ... case .Failure(let error): ... }
提前致谢!
如果响应为类型,则NSHTTPURLResponse可以从获取标头response.allHeaderFields。
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。
包含所有HTTP标头字段的字典,该字段作为服务器响应的一部分收到。通过检查此词典,客户端可以看到HTTP服务器返回的“原始”标头信息。
该词典中的关键字是从服务器收到的标头字段名称。有关常用的HTTP标头字段的列表,请参阅RFC 2616。
因此,例如要获取响应标头中的内容类型,您可以通过以下方式进行访问:
if let contentType = response.response?.allHeaderFields["Content-Type"] as? String { // use contentType here }