objective-c - 在 UIWebView 上获取 HTTP 响应 header

标签 objective-c swift http uiwebview

如何从 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]);
}
  1. 该代码在 Swift 中看起来如何?
  2. 也许现在我们有更好的方法来做到这一点?缓存并不总是启用。

最佳答案

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/

相关文章:

swift - 具有覆盖功能的嵌套类的编译器错误 - Swift Xcode6

Swift - 无需构造函数即可初始化类变量

javascript - Angular 8 - HttpClient 获取复杂的 JSON 对象

java - 将 webapp 从本地主机移动到服务器 - 找不到页面

java - Android:将图像上传到服务器的最佳 HTTP 库是什么?

ios - 将图像添加到我的 UIButton subview

objective-c - 核心数据多线程 : Code Examples

ios - 如何让SKSpriteNode重新出现在它的SKScene的对面?

iphone - 使用 CGContext 画线

swift - Firebase 方法错误 - Xcode Swift -