iphone - 如何从 UIWebView 获取最后的 HTTP 状态代码?

标签 iphone cocoa cocoa-touch

我想检测给 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/

相关文章:

ios - 在 iOS 上获取相机当前曝光持续时间值?

javascript - 将包含 NSDictionary 对象的 NSArray 传递给 Javascript 函数

cocoa - QTKit 不会枚举 64 位模式下的 USB 和虚拟摄像头。有解决方法吗?

iphone - 当方向改变时如何将ScrollView定位在键盘后面

ios - 如何启动单个计时器并从多个 View 访问它?

iphone - 从 UIView 创建 UIImage 时出现非空无效上下文错误

iphone - 将标题添加到以编程方式创建的选项卡栏

cocoa - 在 Mac OS X 桌面上绘图

cocoa - 你曾经使用过 NSZoneMalloc() 而不是 malloc() 吗?

iphone - 给定一个异步 block ,如何知道该 block 何时完成?