2

高度赞赏帮助。我被困在这里:

在开始在 UIWebView 中加载 URL 之前,我需要检查响应。然而,同步的 NSURLConnection 将首先下载数据,然后让我访问响应,这很糟糕。

异步 NSURLConnection 将让我在收到任何数据之前检查响应,但我只能检查委托方法 connection:didReceiveResponse: 中的响应。但随后我将不得不告诉我的 webView 的删除方法 (webView:shouldStartLoadWithRequest:navigationType:) 等到响应出现。因为两个委托都在主线程中(他们必须是?我猜是这样)我不能简单地使用 NSCondition 来停止 webView 的委托(因为这意味着停止主线程)。

有谁知道如何解决这个问题?

提前致谢。

4

3 回答 3

4

如果您只需要标头,您可以先发出 HEAD 请求(而不是 GET)。那只会返回标题,没有任何正文。这甚至可能足够快,您可以考虑同步执行它,尽管您显然想彻底测试它。

更新
实际上,不要同步进行。即使响应大小很小,单独的请求延迟通常也可能超出您想要处理的范围。

于 2011-12-11T14:59:32.523 回答
1

using 读取所有数据NSConnection,然后将其加载到UIWebViewusing 中-loadData:MIMEType:textEncodingName:baseURL:

于 2009-07-24T20:28:32.703 回答
0

首先,你真的不应该对网络数据使用同步方法,潜在的延迟很糟糕。

我建议你打两个电话:第一个是找到 MIME 类型,一旦你确定它就会取消连接。第二个当你想下载完整数据时。由于这可能是加载到 aUIWebView中,这似乎不是不合理的。

于 2011-10-11T16:34:08.873 回答