zoukankan      html  css  js  c++  java
  • iOS UIWebView获取403/404

    问题描述

        与WindowsPhone不同,iOS UIWebView并不认为403/404这种情况下页面访问是失败的,这也情有可原,但有时候,我们需要对WebView所遇到的403/404进行处理。

    解决思路

        由于WebView在回调事件,要么发生在NSURLConnection请求之前:

            - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;

            - (void)webViewDidStartLoad:(UIWebView *)webView;

        要么发生在NSURLConnection请求之后:

            - (void)webViewDidFinishLoad:(UIWebView *)webView;

            - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;

        这两种情况下都无法获取状态码,故NSURLConnection必须由我们来完成。然后让WebView调用loadData方式展现页面,而403/403由我们自己处理。

    解决方案

    [python] view plaincopy
    1. #pragma mark -  
    2. #pragma mark - UIWebView Delegate Methods  
    3. - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType  
    4. {  
    5.     static BOOL isRequestWeb = YES;  
    6.       
    7.     if (isRequestWeb) {  
    8.         NSHTTPURLResponse *response = nil;  
    9.           
    10.         NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];  
    11.         if (response.statusCode == 404) {  
    12.             // code for 404  
    13.             return NO;  
    14.         } else if (response.statusCode == 403) {  
    15.             // code for 403  
    16.             return NO;  
    17.         }  
    18.           
    19.         [webView loadData:data MIMEType:@"text/html" textEncodingName:nil baseURL:[request URL]];  
    20.           
    21.         isRequestWeb = NO;  
    22.         return NO;  
    23.     }  
    24.       
    25.     return YES;  
    26. }
  • 相关阅读:
    Qualcomm download 所需要的 contents.xml
    “临界知识”的3个底层思维与方法,98%的人都不知道!
    什么是临界知识
    做一个会学习的人
    有效的结构化思维训练,MECE分析法
    那些一眼看透本质的人,逻辑都是这样形成的!
    js设计模式--策略模式
    数学——抽象与具体相结合
    使用POI解析Excel
    合成复用原则——面向对象设计原则
  • 原文地址:https://www.cnblogs.com/zsw-1993/p/4879596.html
Copyright © 2011-2022 走看看