对于iOS异步http请求,如何将接收到的数据连接到请求?
我正在从某个服务器异步加载某些映像。我使用NSURLConnection connectionWithRequest方法一次触发多个请求,并使用NSURLConnectionLegate didReceiveData接收数据 在didReceiveData,如何知道此数据与哪个请求匹配?在didReceiveResponse中,我可以使用给定响应的URL方法作为参数,但在didReceiveData中,我只有收到的数据 完美的答案似乎是使用NSURLConnection sendAsynchronousRequest,因为完成处理程序具有所有必需的参数:(NSURLResponse*、NSData*、NSError*)。我可以使用[response URL]与原始请求进行匹配。。。除了一种情况:并非所有我试图下载的图像都存在。在这种情况下,请求被重定向到一个通用错误页面,并收到该通用页面的URL,因此我无法将响应与我发出的请求相匹配。这一点我可以处理connectionWithRequest,但我无法同时兼顾这两个方面。对于iOS异步http请求,如何将接收到的数据连接到请求?,ios,http,asynchronous,Ios,Http,Asynchronous,我正在从某个服务器异步加载某些映像。我使用NSURLConnection connectionWithRequest方法一次触发多个请求,并使用NSURLConnectionLegate didReceiveData接收数据 在didReceiveData,如何知道此数据与哪个请求匹配?在didReceiveResponse中,我可以使用给定响应的URL方法作为参数,但在didReceiveData中,我只有收到的数据 完美的答案似乎是使用NSURLConnection sendAsynchro
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
你可以用
NSURLRequest *request = [connection originalRequest];
以获取启动连接的请求
(此方法自iOS 5.0起可用,但我在我的Xcode iOS 5.1库中找不到。您可以在iOS 6库、头文件NSURLConnection.h或此处找到它:)
可以在此线程中找到更多管理多个连接的方法:
如果使用
sendAsynchronousRequest:queue:completionHandler:
,则只需在完成块中使用request
参数。At connection:didReceiveData:第一个参数是NSURLConnection实例。所以我不明白问题出在哪里。创建一个连接,然后向该连接发送一个请求,代理将收到带有连接值的connection:didReceiveData
如果对所有请求使用同一个委托,则必须检查连接,以便说出与哪个请求关联
也许您必须维护一个连接/请求对表