我有一個HTTP PUT請求和請求主體作爲來自文件流的問題。NSMutableURLRequest和「請求主體流已耗盡」錯誤
無論文件的大小,我得到了錯誤「NSURLErrorDomain -1021請求體流枯竭」
我知道我可以通過實現方法來覆蓋這個問題:
-(NSInputStream*)connection:(NSURLConnection *)connection needNewBodyStream:(NSURLRequest *)request
但這種方法不好,因爲它會再次上傳整個文件,而40 MB的文件竟然是80 Mb的數據傳輸。
如果我採取與NSData相同的文件,並設置請求正文工作正常。
我試着發送請求異步並同時在兩個同步結果。
這裏是我的代碼,從蘋果的簡單,類似例子:
NSURL *url = [NSURL URLWithString:[self concatenatedURLWithPath:path]];
NSMutableURLRequest *req = [[NSMutableURLRequest alloc] initWithURL:url];
[req setHTTPMethod:@"PUT"];
[req setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
[request setTimeoutInterval:DEFAULT_TIMEOUT];
[req setValue:_contentType forHTTPHeaderField:@"Content-Type"];
NSInputStream *fileStream = [NSInputStream inputStreamWithFileAtPath:_dataStreamLocation];
[req setHTTPBodyStream:fileStream];
_connection = [[NSURLConnection connectionWithRequest:req delegate:self] retain];
我做錯什麼了嗎? 我錯過了什麼?
它真的爲你工作....?我也面臨同樣的問題。 – Selvin 2012-01-20 10:21:36