2013-01-18 65 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); 
相關問題