2009-09-01 155 views
0

我拉着我的頭髮試圖調出正確的語法來設置HTTP頭信息從HTTP服務器執行字節範圍加載。我需要setValue的正確語法:forHTTPHeaderField:NSMutableURLRequest上的方法

這是NSMutableURLRequest 違規方法 - (無效)的setValue:(的NSString *)值forHTTPHeaderField:(的NSString *)字段

這是我如何使用這種方法加載的第一個512字節的網址請求。

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];  
[request setHTTPMethod:@"GET"]; 
[request setValue:@"0-512\r\n" forHTTPHeaderField:@"Range"]; 

到目前爲止,它被忽略,我總是收到整個數據有效載荷。我只想要指定的字節範圍(0 - 512)。有人可以緩解我的頭痛嗎?

更新: 我已經使用捲曲,以確認我的Web服務器支持字節範圍正是如此: 捲曲--range 0-2047 http://www.somewhere.com/humungodata.dat -o 「foobar的」

Foobar的文件大小爲2048

乾杯, 道格

回答

1

問題解決。

通過添加額外的頭字段代碼立即正常工作。爲什麼?不知道。但它的工作原理如下:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 

[request setHTTPMethod:@"GET"]; 

[request setValue:@"keep-live"  forHTTPHeaderField:@"Connection"]; 
    [request setValue:@"300"  forHTTPHeaderField:@"Keep-Alive"]; 
[request setValue:@"bytes=0-2047" forHTTPHeaderField:@"Range"]; 
-1

你有什麼應該有一個標頭值添加到URL請求的正確方法,但我以爲只是帖子得到了標頭值,也許我錯了,你嘗試過其他enviroments這樣做的,得到它的工作?也許拿出\ r \ n?

0

你原來的代碼在setValue行中是錯誤的,它應該是@「bytes = 0-512」。在你的後續行動中,你使用了正確的字符串,所以不需要其他頭文件。