我正在尝试将http头添加到URLRequest中,我正在WKWebView中加载它。
我试过这个代码:
var urlRequest = URLRequest(url: URL(string: "url")!)
urlRequest.addValue("value", forHTTPHeaderField: "key")
self.viewerWebKit.load(urlRequest)
此外,这也是:
var urlRequest = URLRequest(url: URL(string: "url")!)
urlRequest.setValue("value", forHTTPHeaderField: "key")
self.viewerWebKit.load(urlRequest)
但是,当我使用以下代码打印http头时:
func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
let headers = (navigationResponse.response as! HTTPURLResponse).allHeaderFields
for (key,value) in headers {
print("key \(key) value \(value)")
}
decisionHandler(.allow)
}
没有添加或设置任何内容。我做错了什么?
发布于 2018-10-25 05:38:59
optional func webView(_ webView: WKWebView,
decidePolicyFor navigationAction: WKNavigationAction,
decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)
使用此委托函数。您可以在navigationAction.request中找到请求头。
发布于 2018-10-25 17:26:25
URLRequest不可变,因此如果您想在请求中添加标头,则需要使其mutable.use这个扩展来添加标头。
extension URLRequest {
internal mutating func addHeaders() {
let mutableRequest = ((self as NSURLRequest).mutableCopy() as? NSMutableURLRequest)!
mutableRequest.setValue("your header", forHTTPHeaderField: "key")
self = mutableRequest as URLRequest
}
}
}
使用您希望设置标题的位置:
request.addHeaders()
https://stackoverflow.com/questions/52990439
复制相似问题