我搜索/谷歌了很多,但无法获得有关如何在 UIWebview
中捕获 HTTP 响应 header 的答案。假设我在 App Launch 中将用户重定向到 UIWebview 中的注册网关(已经处于事件状态),当用户完成注册时,应用程序应该收到在注册时分配给用户的成功唯一 ID 的通知,该 ID 在 HTTP 响应 header 中传回.
有什么直接的方法可以使用 UIWebview
捕获/打印 HTTP 响应 header ?
最佳答案
无法从 UIWebView
获取响应对象(为此向 apple 提交错误,id 说)
但是有两个解决方法
1) 通过共享的 NSURLCache
- (void)viewDidAppear:(BOOL)animated {
NSURL *u = [NSURL URLWithString:@"http://www.google.de"];
NSURLRequest *r = [NSURLRequest requestWithURL:u];
[self.webView loadRequest:r];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSCachedURLResponse *resp = [[NSURLCache sharedURLCache] cachedResponseForRequest:webView.request];
NSLog(@"%@",[(NSHTTPURLResponse*)resp.response allHeaderFields]);
}
@end
如果这对你有用,那就是理想的
其他
- 您可以完全使用 NSURLConnection,然后只使用您下载的 NSData 来提供
UIWebView
:)
这将是一个糟糕的解决方法! (正如理查德在评论中指出的那样。)它确实有很大的缺点,你必须看看它是否是你的情况下的有效解决方案
NSURL *u = [NSURL URLWithString:@"http://www.google.de"];
NSURLRequest *r = [NSURLRequest requestWithURL:u];
[NSURLConnection sendAsynchronousRequest:r queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *resp, NSData *d, NSError *e) {
[self.webView loadData:d MIMEType:nil textEncodingName:nil baseURL:u];
NSLog(@"%@", [(NSHTTPURLResponse*)resp allHeaderFields]);
}];
关于iphone - UIWebView 捕获响应头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15476539/