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 3、Swift 4 和 Swift 5
func webViewDidFinishLoad(_ webView: UIWebView) {
let headers = webView.request?.allHTTPHeaderFields
for (key,value) in headers! {
print("key \(key) value \(value)")
}
}
我无法从 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 3、Swift 4 和 Swift 5
func webViewDidFinishLoad(_ webView: UIWebView) {
let headers = webView.request?.allHTTPHeaderFields
for (key,value) in headers! {
print("key \(key) value \(value)")
}
}