【发布时间】:2017-07-28 05:16:49
【问题描述】:
我无法从 UIWebView 响应中获取标头,因为该响应显然没有被缓存。有解决方法吗?我已经尝试过来自here 的代码。
我的应用程序使用混合的原生 iOS 视图控制器和 UIWebView。当我启动 UIWebView 会话时,我使用密钥链中的身份验证令牌写入 cookie,其中令牌是从 API 登录中保存的。
如果用户在 Web 视图中导航到另一个页面,则 cookie 似乎不正确。我的目标是从每个响应中获取身份验证 cookie,并将其保存为来自服务器的身份验证令牌随每个请求而变化。然后我想将令牌重新添加到新请求中。
下面的代码总是返回 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)
}
}
}
}
【问题讨论】:
-
不,这是一个 Swift 问题。另一个是我不明白的 Obj C。
-
代码实际上并没有返回任何东西。您能否更具体地说明
nil是哪一部分?是resp,还是response,还是response.allHeaderFields,还是别的什么? -
if let resp失败
标签: uiwebview swift3 uiwebviewdelegate