2013-01-18 66 views
1

我的应用程序的行为是这样的:如何使用相同的连接发送不同的要求?

客户:发送的请求(使用NSURLConnection)服务器要求服务器生成一个文件,并 下载该文件。

服务器:生成该文件并发送文件的数据 回客户端(使用分块编码)

生成文件之后,服务器将更新文件的标题,因此下载 文件,客户的需求后,再次请求获取更新的标题。在 文件生成和更新,如果服务器检测到来自客户端的连接是 封闭的,它会删除生成的文件,所以连接需要 维持生命。

客户:发送的第二请求(另一个NSURLConnection)以获取更新的报头

是第一请求后(我使用NSURLConnection)服务器检测连接关闭,并删除所生成的文件中的问题,所以第二个请求失败。

我怀疑是因为我使用了两个不同的NSURLConnection实例,所以我查看文档中的东西,如NSMutableURLConnection。它不存在!

我的问题:是否有一种方法来保持连接请求之间的存活(通过重用NSURLConnection,或使用NSMutableRequest并用相同的NSURLConnection重新请求)?

+0

您使用的异步请求,对不对?为什么不直接使用connectionWithRequest:代表:方法在同一实例 –

+1

停止第二次滥用HTTP! –

+0

@Rohan connectionWithRequest:委托:是一类方法,它创建NSURLConnection的新实例。这意味着它会创建一个新的NSURLConnection对象吗? – jAckOdE

回答

-1

您可以使用:

NSURLConnection *currentConnection = [NSURLConnection alloc]; 
[currentConnection initWithRequest:request1 delegate:self]; 

[currentConnection initWithRequest:request2 delegate:self]; 

可以使用验证原始和当前的NSURLRequest:

- (NSURLRequest *)originalRequest NS_AVAILABLE_IOS(5_0); 
- (NSURLRequest *)currentRequest NS_AVAILABLE_IOS(5_0); 
相关问题