获取UIWebView响应头

Mad*_*wat 7 header objective-c uiwebview ios

我已经研究了从UIWebview响应中获取响应头的方法. 这个SO问题讨论了它.但我不确定苹果是否允许这样做.我将有一个webview显示一个加载的登录页面,并需要在成功登录后获取响应标头.还有这个

做一些事情来获取状态代码.但它会创建一个重复的NSUrlConnection请求.有什么办法可以实现这个目标吗?我将不胜感激.

Mag*_*low 14

除了DBD提供的答案之外,您还需要确保这一点

  1. 包含UIViewController在.h文件中标记为UIWebViewDelegate:

    @interface VIMAuthenticationViewController : UIViewController <UIWebViewDelegate>
    
    Run Code Online (Sandbox Code Playgroud)
  2. UIWebView的委托设置为包含UIViewController.这可以直接在Interface Building中完成,也可以通过链接Web视图并在视图中添加以下内容在.m fie中加载:

    [self.WebView setDelegate:self];
    
    Run Code Online (Sandbox Code Playgroud)
  3. 添加DBD提供的代码:

    (void)webViewDidFinishLoad:(UIWebView *)webView {
       NSCachedURLResponse *resp = [[NSURLCache sharedURLCache] cachedResponseForRequest:webView.request];
       NSLog(@"%@",[(NSHTTPURLResponse*)resp.response allHeaderFields]);
    }
    
    Run Code Online (Sandbox Code Playgroud)

  • 哇靠.移动应用程序答案中提供的其他上下文.这必须是天启的标志,值得比我遗憾的更多+ 1. (5认同)

DBD*_*DBD 11

这应该为你做.

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSCachedURLResponse *resp = [[NSURLCache sharedURLCache] cachedResponseForRequest:webView.request];
    NSLog(@"%@",[(NSHTTPURLResponse*)resp.response allHeaderFields]);
}
Run Code Online (Sandbox Code Playgroud)

  • 有时它返回零? (6认同)
  • 如果缓存的响应为空怎么办?你怎么处理这种情况? (6认同)