在UIWebView上获取HTTP响应标头

时间:2016-01-19 15:16:08

标签: objective-c swift http uiwebview

如何从WebView获取HTTP标头响应?我找到了半解决方案at Stackoverflow,但它是用Objective-C编写的,无法将其转换为Swift(我用我糟糕的Obj-C知识进行了尝试) )。

Objective-C代码:

var table = document.getElementById(f);
var row = table.insertRow();
var cell1 = row.insertCell();
var cell2 = row.insertCell();
cell1.innerHTML = text1;
cell2.innerHTML = text2;
  1. 该代码将如何看待Swift?
  2. 也许现在我们有更好的方法吗?缓存并不总是启用。

2 个答案:

答案 0 :(得分:3)

<强>夫特

斯威夫特更严格;你想保护自己不受nil指针和optionals

的影响
  • 检查webView是否确实有request
  • 检查request是否确实有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)
            }
        }
    }
}

答案 1 :(得分:0)

只需在 SWIFT 3.1

中使用此功能
if let request = webView.request {
            if let resp = URLCache.shared.cachedResponse(for: request) {
                if let response = resp.response as? HTTPURLResponse {
                    print(response.allHeaderFields)
                }
            }
        }