首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS -无法添加URLRequest的http头

iOS -无法添加URLRequest的http头
EN

Stack Overflow用户
提问于 2018-10-25 13:26:23
回答 2查看 1.1K关注 0票数 1

我正在尝试将http头添加到URLRequest中,我正在WKWebView中加载它。

我试过这个代码:

代码语言:javascript
运行
复制
    var urlRequest = URLRequest(url: URL(string: "url")!)
    urlRequest.addValue("value", forHTTPHeaderField: "key")
    self.viewerWebKit.load(urlRequest)

此外,这也是:

代码语言:javascript
运行
复制
    var urlRequest = URLRequest(url: URL(string: "url")!)
    urlRequest.setValue("value", forHTTPHeaderField: "key")
    self.viewerWebKit.load(urlRequest)

但是,当我使用以下代码打印http头时:

代码语言:javascript
运行
复制
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)
}

没有添加或设置任何内容。我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-25 13:38:59

代码语言:javascript
运行
复制
optional func webView(_ webView: WKWebView, 
  decidePolicyFor navigationAction: WKNavigationAction, 
  decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)

使用此委托函数。您可以在navigationAction.request中找到请求头。

票数 2
EN

Stack Overflow用户

发布于 2018-10-26 01:26:25

URLRequest不可变,因此如果您想在请求中添加标头,则需要使其mutable.use这个扩展来添加标头。

代码语言:javascript
运行
复制
extension URLRequest {

internal mutating func addHeaders() {

        let mutableRequest = ((self as NSURLRequest).mutableCopy() as? NSMutableURLRequest)!


            mutableRequest.setValue("your header", forHTTPHeaderField: "key")
            self = mutableRequest as URLRequest

        }
    }

}

使用您希望设置标题的位置:

代码语言:javascript
运行
复制
request.addHeaders()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52990439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档