我是用於HTTP請求的uisng ASIHTTPRequest,並將結果保存到單獨的文件中。由於該文件預計會很大,它應該也能恢復。如何取消錯誤響應HTTP代碼的ASIHTTPRequest?
request.allowResumeForFileDownloads = YES;
request.downloadDestinationPath = destFile;
request.temporaryFileDownloadPath = tmpFile;
我用下面的選擇:
request.didFinishSelector = @selector(didFinishRequest:);
request.didFailSelector = @selector(didFailRequest:);
request.didReceiveResponseHeadersSelector = @selector(didReceiveResponse:);
現在我有鬆動連接,不同的代理,等測試不同的情況下,發現一個問題,即如果接收到響應與其他類似的代碼503或其他東西,那麼ASIHTTPRequest仍然會將結果保存到臨時文件中,這是錯誤的,因爲數據是一些隨機的錯誤HTML頁面(如果存在部分下載的文件,則將其附加到它使我的數據損壞)。
所以我想要做的是檢查響應代碼,如果它不是2XX,然後取消請求而不保存任何東西。
這並沒有幫助:
- (void)didReceiveResponse:(ASIHTTPRequest*)request {
if (request.responseStatusCode < 200 || request.responseStatusCode >= 300) {
[request clearDelegatesAndCancel];
任何想法?
會發生什麼事,當您嘗試發佈的代碼?你有沒有試過步入[請求clearDelegatesAndCancel]找出爲什麼它不會停止下載? –