gpt4 book ai didi

ios - 在 AlamofireObjectMapper 响应中映射 allHeaderFields

转载 作者:行者123 更新时间:2023-11-30 11:01:49 25 4
gpt4 key购买 nike

我正在使用AlamofireObjectMapper

来 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com