我想检测给 UIWebView 的页面加载请求何时返回 5xx 或 4xx 范围内的状态代码。
我已经为 Web View 设置了委托(delegate),并提供了 -webView:didFailLoadWithError:error 方法,但尽管它在超时时可以正常调用,但在 HTTP 状态代码错误时不会调用它。
有什么建议吗?
最佳答案
嗯...我不是 iPhone 开发人员,但是...
您可以尝试使用您想要加载的 URL 创建一个 NSURLRequest 吗?然后您可以使用 NSURLConnection 建立连接。
NSURLConnection 有一个委托(delegate)方法
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
这将给出来自服务器的响应。请注意,如果您通过 HTTP 建立连接,则响应实际上属于 NSHTTPURLResponse 类。 NSHTTPURLResponse 可用于使用以下实例方法获取状态
- (NSInteger)statusCode
NSURLConnection 有另一个委托(delegate)方法
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
可用于从 URL 连接获取数据。然后,您可以使用以下方法手动将数据加载到 UIWebView 中:
- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)encodingName baseURL:(NSURL *)baseURL
这似乎是一项艰巨的工作,但这是可以完成的。希望其他人能想出更简单的方法,尽管我没有看到。
关于iphone - 如何从 UIWebView 获取最后的 HTTP 状态代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1061364/