- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
来 self 的服务器的响应是 JSON 格式,但它还在 header 中包含一些键
Alamofire.request(URL).responseObject { (response: DataResponse<MyMappable>) in
let weatherResponse = response.result.value
print(weatherResponse?.location)
}
我的可映射类是这样的
class MyMappable: Mappable {
var location: String?
required init?(map: Map){
}
func mapping(map: Map) {
location <- map["location"]
}
}
上面的所有代码都可以工作,但我的问题是我想映射一些值是 header ,我只能在响应中获取这些 header
let allHeaders = response.response?.allHeaderFields
if let headers = allHeaders as? [String: String], let someValue = headers["key"]
{
print("my value is: \(someValue)")
}
但我想将其映射到 MyMappable 类中,可以吗?
最佳答案
我找不到将 header 字段与有效负载映射的方法
我发现的是,我们可以从响应中获取所有 header 字段,并以两种方式将其存储在我们的类中。
第一个是这样的
Alamofire.request(URL).responseObject { (response: DataResponse<MyMappable>) in
let myMappable = response.result.value
myMappable.allHeaderFields = response.response?.allHeaderFields
print(myMappable?.location)
}
第二种方式(我使用的一种)如果您使用泛型类作为父类,那么您可以像打击一样转换您的响应
Alamofire.request(URL).responseObject { (response: DataResponse<MyMappable>) in
let myMappable = response.result.value
if let genericResp = myMappable as? GenericResponse<AnyGeneric> {
genericResp.mHeaders = response.response?.allHeaderFields
}
}
关于ios - 在 AlamofireObjectMapper 响应中映射 allHeaderFields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53287301/
我正在使用 Alamofire 进行 API 调用。 根据我使用的服务器,响应 header 可以大写。 但是正如 allHeaderFields 的文档所说: var allHeaderFields
我正在使用AlamofireObjectMapper 来 self 的服务器的响应是 JSON 格式,但它还在 header 中包含一些键 Alamofire.request(URL).respons
如果我的应用程序是从 AppStore 下载的,那么在加载网页时它会经常崩溃,但我无法在 Debug模式下重复崩溃。崩溃日志说: -[NSURLResponse allHeaderFields]: u
我正在向 API 发出 POST 请求,并在 Swift 中成功获得响应。下面是我的代码。 private func getData(url: NSURL) { let config: NSU
我的代码的目的是比较服务器文件和本地文件的修改日期,如果服务器文件较新,它将下载它。 我的第一次尝试是使用 http://iphoneincubator.com/blog/server-communi
为什么 -[[NSHTTPURLResponse allHeaderFields] valueForKey:] 不区分大小写,而手动创建的 NSDictionary 的 valueForKey: 不区
我想知道在什么条件下 NSHTTPURLResponse 对象不会有键 @"Content-Length"?没有那把 key 是正常的吗? 我正在尝试使用 dropbox SDK 进行一些操作,并且我
我正在使用 OCMock 来模拟 NSURLConnection/NSURLResponse(是的,我知道这些已被弃用)并且一切正常,因为我希望它模拟 http 响应代码和 http 主体。现在我正在
转换到 Swift 3 时,我注意到一个奇怪的错误发生在从 HTTPURLResponse 读取 header 字段时。 let id = httpResponse.allHeaderFields["
我尝试使用以下行获取 NSURLRequest 的 header : NSString *contentType = [[(NSHTTPURLResponse *)data allHeaderFiel
我是一名优秀的程序员,十分优秀!