gpt4 book ai didi

ios - 用于为所有 URLRequest 添加自定义 header 字段的 URLRequest 和 URLSession 的拦截器?

转载 作者:搜寻专家 更新时间:2023-10-31 22:38:06 30 4
gpt4 key购买 nike

我如何为应用程序中的所有 URLRequest 在 URLRequest 和 URLSession 中添加自定义拦截器。所以我可以在一个地方为所有 http 请求添加我自己的自定义 HTTPHeader 字段,有 alamofire 拦截器但我不想使用 alamofire,我想要 urlsession 中的拦截器和 swift 4 中的 urlrequest。我扩展了 urlrequest 但对我不起作用。

//1st One    
extension URLRequest {
init(_ url: URL) {
self.init(url: url)
self.setValue(deviceInformation.shared.deviceModel, forHTTPHeaderField: "deviceModel")
self.allHTTPHeaderFields?.updateValue(deviceInformation.shared.deviceModel, forKey: "deviceModel1")
}
}

// 2nd one

extension URLRequest {
var instance: URLRequest {
var instanceRequest: URLRequest!
instanceRequest.allHTTPHeaderFields?.updateValue(deviceInformation.shared.deviceModel, forKey: "deviceModel")
instanceRequest.addValue(deviceInformation.shared.deviceSystemName, forHTTPHeaderField: "deviceSystemName")
instanceRequest.addValue(deviceInformation.shared.deviceSystemVersion, forHTTPHeaderField: "deviceSystemVersion")
instanceRequest.addValue(deviceInformation.shared.getAppVersion(), forHTTPHeaderField: "appVersion")
return instanceRequest
}
}
//both are not working

最佳答案

 //Here is the answer for "Custom Header Fields" for all URLRequest.   

extension URLRequest {
init(_ url: URL) {
self.init(url: url)
self.setValue("Value", forHTTPHeaderField: "fieldNamme")
}
}

//how to use
func aBC(){
//how to call it.
let myUrl = URL(string: "Your url string")
let request = URLRequest(myUrl) //this will work and add custom header
//let request = URLRequest(url: myUrl) // this will not work because it call the super init method of urlrequest.

request.httpMethod = "POST"
do {
request.httpBody = try JSONSerialization.data(withJSONObject: ["bodyParam" : "value"], options: [])
} catch let error {
return
}

let dataTask = URLSession.shared.dataTask(with: request) {
data,response,error in

do {
//.
// .
// .
} catch let error as NSError {
}
}
dataTask.resume()
}

关于ios - 用于为所有 URLRequest 添加自定义 header 字段的 URLRequest 和 URLSession 的拦截器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53221201/

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