非常感谢帮助。我被困在这里:
在我开始在UIWebView中加载URL之前,我需要检查一个响应。然而,同步NSURLConnection将首先下载数据,然后让我访问响应,这是不好的。
异步NSURLConnection将让我在收到任何数据之前检查响应,但我只能检查委托方法连接中的响应:didReceiveResponse :.但是,我必须告诉我的webView的delegete方法(webView:shouldStartLoadWithRequest:navigationType :)等待响应到那里。因为两个代理都在主线程中(它们必须是吗?我猜是这样)我不能简单地使用NSCondition来停止webView的委托(因为这意味着停止主线程)。
有没有人知道如何解决这个问题?
提前致谢。
答案 0 :(得分:4)
如果您只需要标题,则可以先发出HEAD请求(而不是GET)。那将只返回标题,没有任何正文。这甚至可能足够快,你可以考虑同步进行,尽管你显然想彻底测试它。
<强>更新强>
实际上,不要同步这样做。即使响应量很小,单独请求的延迟通常也会超出您想要处理的范围。
答案 1 :(得分:1)
使用NSConnection
阅读所有数据,然后使用UIWebView
将其加载到-loadData:MIMEType:textEncodingName:baseURL:
。
答案 2 :(得分:0)
首先,你真的不应该对网络数据使用同步方法,潜在的延迟是不好的。
我建议您拨打两个电话:第一个找到MIME类型,一旦您确定它就会取消连接。第二,当你想下载完整的数据。由于这可能是加载到UIWebView
,这似乎并不合理。