当我使用基于webview的应用程序并且服务器在iphone sdk中失败时,如何查找404错误原因

我正在实现一个基于webview的应用程序,因为我需要找到404错误发生的方法。 任何人的帮助将不胜感激。 谢谢大家, Monish。     
已邀请:
在这里,您只需要在webview委托方法完成或失败时检查请求的状态
     - (void)webViewDidFinishLoad:(UIWebView *)webView
{
    int status = [[[webView request] valueForHTTPHeaderField:@"Status"] intValue];
    if (status == 404) {

    }
}
如果这对你没有帮助。检查一下。 使用要加载的URL创建NSURLRequest。然后使用NSURLConnection建立连接。 NSURLConnection有一个委托方法
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
这将给出服务器的响应。请注意,如果您通过HTTP建立连接,则响应实际上是NSHTTPURLResponse类。 NSHTTPURLResponse可用于使用以下实例方法获取状态
- (NSInteger)statusCode
然后检查状态是否为404,如果是,则显示您的警报视图。通过这种方式,您将能够显示html页面和警报视图。     
webViewDidFinishLoad
方法中,您也可以这样检查:
NSCachedURLResponse *resp = [[NSURLCache sharedURLCache] cachedResponseForRequest:webView.request];
NSLog(@"status code: %ld", (long)[(NSHTTPURLResponse*)resp.response statusCode]);
    
webViewDidFinishLoad()
方法写下面的代码并检查状态代码......
- (void)webViewDidFinishLoad:(UIWebView *)webview {

    NSCachedURLResponse *urlResponse = [[NSURLCache sharedURLCache] cachedResponseForRequest:webview.request];
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*) urlResponse.response;
    NSInteger statusCode = httpResponse.statusCode;
}
    
试试这个,我认为如果URL错误,则返回html为nil。你只能在那里处理它
NSString *htmlCode = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:loadUrl]];    
if (htmlCode==nil)
    {
        // you can handle here with an alert or any message in webview to load.
    }
    else
    {
        [myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:loadUrl]]];
    }

    [htmlCode release];
你可以在其他方法中使用htmlCode来处理
- (void)webViewDidFinishLoad:(UIWebView *)webView
如果你想在请求后处理它。     

要回复问题请先登录注册