部分使用NSURLMutableRequest获取请求

时间:2009-08-09 17:50:54

标签: objective-c cocoa http-headers

我无法使用NSURLMutableRequest尝试执行部分获取请求。

我按如下方式设置标头值:

NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url];
NSString* range = [NSString stringWithFormat:@"bytes %d-%d/%d", receivedContentLength, expectedContentLength, expectedContentLength];
[request setHTTPMethod:@"GET"];
[request addValue:[fmt stringFromDate:[NSDate date]] forHTTPHeaderField:@"Date"];
[request addValue:@"application/octet-stream" forHTTPHeaderField:@"Content-Type"];
[request addValue:@"bytes" forHTTPHeaderField:@"Accept-Ranges"];
[request addValue:range forHTTPHeaderField:@"Content-Range"];
[request addValue:[NSString stringWithFormat:@"%d", (expectedContentLength - receivedContentLength)] forHTTPHeaderField:@"Content-Length"];

我已经验证(使用WGet)我正在使用的网址支持部分获取请求。我无法使用NSURLDownload的恢复功能的原因是它需要eTag,这是服务器当前不支持的。

我错过了设置标题的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

好的弄清楚它是什么。我正在获得一个暂时移动的重定向响应,我使用原始范围标题和新的重定向响应创建了一个新响应。我还将“Content-Range”标签更改为“Range”。

是的 - 现在我可以支持wget样式简历了!假设我应该添加一个 if-unmodified-since 但不是现在;)