【问题标题】:Detect HTTP code 302 from webView从 webView 检测 HTTP 代码 302
【发布时间】:2013-02-26 15:59:51
【问题描述】:

我需要在用户输入正确的登录名和密码后检测HTTP代码302,我正在使用这种方法:

- (void) connection:(NSURLConnection *)connection
 didReceiveResponse:(NSURLResponse *)response
{
    NSLog(@"connection:didReceiveResponse");

    if ([response isKindOfClass:[NSHTTPURLResponse class]]) {

        NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;

        int status = [httpResponse statusCode];

        if (status == 302) {

            //do something here
        }

        else
        {

            NSLog(@"http status code: %d", status);
        }

        [connection cancel]; 

    }

}

但是页面重定向后我只能得到状态码 200,请问有什么办法吗??

谢谢!

【问题讨论】:

  • 如果您使用的是 webView,您应该使用这种方法吗?这不是NSURLConnection 委托方法不是 webView 方法吗?

标签: ios objective-c webview


【解决方案1】:

如果您使用的是UIWebView,那么您需要检查UIWebViewDelegate的委托方法中的错误代码,而不是NSURLConnectionDelegatedidReceiveResponse

这是您可以检查错误代码的确切方法..

-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
    if (error.code == ERROR_YOU_WANT_TO_CHECK {
       //do what you want to do here 
     }
}

编辑

如果您使用的是NSURLConnection,那么回答这个question 可能会对您的事业有所帮助

【讨论】:

  • 你是对的@AndreasLey,在这种情况下他需要通过检查-(NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse方法中的错误代码来重新发送请求
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-14
  • 2015-12-29
  • 1970-01-01
  • 1970-01-01
  • 2014-10-10
  • 2014-12-05
  • 1970-01-01
相关资源
最近更新 更多