如何从 WebView 获取 HTTP header 响应?我找到了半解决方案at Stackoverflow ,但它是在 Objective-C 上编写的,无法将其转换为 Swift(我已经用我可怜的 Obj-C 知识尝试过了)。
Objective-C 代码:
- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSCachedURLResponse *resp = [[NSURLCache sharedURLCache] cachedResponseForRequest:webView.request];
NSLog(@"%@",[(NSHTTPURLResponse*)resp.response allHeaderFields]);
}
- 该代码在 Swift 中看起来如何?
- 也许现在我们有更好的方法来做到这一点?缓存并不总是启用。
最佳答案
swift
Swift 更加严格;你想保护自己免受nil
指针和可选
的影响:
- 检查
webView
是否确实有请求
- 检查
请求
实际上有一个NSCachedURLResponse
- 根据
NSHTTPURLResponse
对响应进行类型检查
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)
}
}
}
}
关于objective-c - 在 UIWebView 上获取 HTTP 响应 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34880416/