objective-c - tutorial - wkwebview swift 3
Obtenga el encabezado HTTP Response en UIWebView (2)
Rápido
Swift es más estricto; desea protegerse contra punteros nil
y optionals
:
- comprobar que la
webView
realidad tiene unarequest
- compruebe que la
request
realidad tiene unaNSCachedURLResponse
- compruebe la respuesta de tipo contra
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)
}
}
}
}
¿Cómo puedo obtener la respuesta de los encabezados HTTP desde WebView? He encontrado semi-soluciones en Stackoverflow , pero está escrito en Objective-C y no puedo convertirlo a Swift (lo he intentado con mi pobre conocimiento de Obj-C).
Código Objective-C:
- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSCachedURLResponse *resp = [[NSURLCache sharedURLCache] cachedResponseForRequest:webView.request];
NSLog(@"%@",[(NSHTTPURLResponse*)resp.response allHeaderFields]);
}
- ¿Cómo se verá ese código en Swift?
- Tal vez ahora tenemos mejores formas de hacerlo? El almacenamiento en caché no siempre está habilitado.
Solo usando esto en 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)
}
}
}