Swift 从 UIWebView 响应中获取 headers

Swift get headers from UIWebView response

我无法从 UIWebView 响应中获取 headers,因为响应显然没有被缓存。有解决方法吗?我试过 .

中的代码

我的应用程序混合使用原生 iOS 视图控制器和 UIWebView。当我启动 UIWebView session 时,我使用密钥链中的身份验证令牌编写了一个 cookie,其中令牌是从 API 登录中保存的。

如果用户导航到网络视图中的另一个页面,则 cookie 似乎不正确。我的目标是从每个响应中获取身份验证 cookie,并将其保存为来自服务器的身份验证令牌随每个请求而变化。然后我想将令牌添加回新请求中。

下面的代码总是returns nil。我正在尝试从 headers.

获取授权令牌
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)
            }
        }
    }
}

曾为 Swift 3Swift 4Swift 5

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