繁体   English   中英

A /同步NSURLConnection:在没有下载数据的情况下获得响应?

[英]A/Synchronous NSURLConnection: get response without download data?

非常感谢您的帮助。 我被困在这里:

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

异步NSURLConnection可以让我在接收任何数据之前检查响应,但是我只能在委托方法connection:didReceiveResponse:中检查响应。 但是然后我必须告诉我的webView的delegete方法(webView:shouldStartLoadWithRequest:navigationType :)等到响应在那里。 因为两个委托都在主线程中(它们一定是吗?我猜是这样),所以我不能简单地使用NSCondition来停止webView的委托(因为这意味着要停止主线程)。

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

提前致谢。

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

更新
实际上,请勿同步执行此操作。 即使响应大小很小,仅请求的延迟通常也可能会超过您想要处理的延迟。

使用NSConnection读取所有数据,然后使用-loadData:MIMEType:textEncodingName:baseURL:将其加载到UIWebView

首先,您实际上不应该对Web数据使用同步方法,因为潜在的延迟很严重。

我建议您进行两次调用:第一次调用MIME类型,这将在确定连接后立即取消连接。 要下载完整数据时的第二个。 由于这可能是加载到UIWebView ,所以这似乎并不合理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM