Swift从UIWebView响应中获取头文件

时间:2017-03-07 20:31:27

标签: uiwebview swift3 uiwebviewdelegate

我无法从UIWebView响应中获取标头,因为响应显然尚未缓存。有解决方法吗?我尝试过here的代码。

我的应用程序使用混合的原生iOS视图控制器和UIWebView。当我启动UIWebView会话时,我使用来自我的密钥链的auth令牌编写一个cookie,其中令牌从API登录中保存。

如果用户导航到网络视图中的其他网页,则Cookie看起来不正确。我的目标是从每个响应中获取auth cookie并将其保存为服务器的auth令牌随每个请求而更改。然后我想将令牌添加回新请求中。

以下代码始终返回nil。我试图从标题中获取一个身份验证令牌。

func webViewDidFinishLoad(webView: UIWebView) {
    if let request = webView.request {
        if let resp = NSURLCache.sharedURLCache().cachedResponseForRequest(request) {
            if let response = resp.response as? NSHTTPURLResponse {
                print(response.allHeaderFields)
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

在Swift 3中为我工作

func webViewDidFinishLoad(_ webView: UIWebView) { 
    let headers = webView.request?.allHTTPHeaderFields
    for (key,value) in headers! {
        print("key \(key) value \(value)")
    } 
}