我想在一个标题请求中获得X-Dem-Auth,并在我的应用程序中使用swift来存储它。
参见回复:
headers {
"Content-Length" = 95;
"Content-Type" = "application/json; charset=utf-8";
Date = "Fri, 15 Apr 2016 08:01:58 GMT";
Server = "Apache/2.4.18 (Unix)";
"X-Dem-Auth" = null;
"X-Powered-By" = Express;
答案 0 :(得分:11)
如果回复的类型为NSHTTPURLResponse
,您可以从response.allHeaderFields
正如苹果文档所说:
包含作为服务器响应的一部分接收的所有HTTP标头字段的字典。通过检查此字典,客户端可以看到HTTP服务器返回的“原始”标头信息。
此字典中的键是从服务器收到的标题字段名称。有关常用HTTP标头字段的列表,请参阅RFC 2616。
因此,要获得例如响应标头中的X-Dem-Auth,您可以通过这种方式访问它:
if let httpResponse = response as? NSHTTPURLResponse {
if let xDemAuth = httpResponse.allHeaderFields["X-Dem-Auth"] as? String {
// use X-Dem-Auth here
}
}
<强> 更新 强>
由于Evan R的评论而更新
if let httpResponse = response as? HTTPURLResponse {
if let xDemAuth = httpResponse.allHeaderFields["X-Dem-Auth"] as? String {
// use X-Dem-Auth here
}
}
答案 1 :(得分:0)
适用于 iOS 13 及更高版本的更新。
我建议如果响应是 HTTPURLResponse 类型并且您只想获取特定的标头值。那么下面是一个更好的方法。
if let httpResponse = response as? HTTPURLResponse {
if let xDemAuth = httpResponse.value(forHTTPHeaderField: "X-Dem-Auth") as? String {
// use X-Dem-Auth here
}
}