これはiOS用です:
以前に中断された接続からファイルのダウンロードを再開しようとしています。これを行うには、HTTPヘッダーの範囲フィールドを使用して、ダウンロード要求の開始点を次のように設定します。
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString: url]];
// Find out if file already exists.
if([[NSFileManager defaultManager] fileExistsAtPath:filename])
{
NSError *error;
unsigned long long currentSize =[[[NSFileManager defaultManager] attributesOfItemAtPath:filename error:&error] fileSize];
NSLog(@"File exists, size:%llu",currentSize);
// If the file was not completly downloaded -> resume download
[urlRequest addValue:[NSString stringWithFormat:@"bytes=%llu-",currentSize] forHTTPHeaderField:@"Range"];
//[urlRequest setValue:[NSString stringWithFormat:@"%llu-",currentSize] forHTTPHeaderField:@"range"];
}
上記のsrcでわかるように、私もsetValueを使用してみました。どちらの場合も、「範囲」フィールドが追加されているようですが、機能していません。ファイルは常にバイトオフセット0から送信されます。NSLog(@ "%@"、[urlRequest allHTTPHeaderFields])を実行すると、範囲値が設定されていますが、それでも機能しないようです。
NSLog(@ "%@"、[urlRequest allHTTPHeaderFields])を実行すると、次のように表示されます。{Range = "bytes = 13207107-"; }または、コメントアウトされたsetValueコードの場合:{Range="13207107-";}。
HTTPサーバーは範囲をサポートしていないのではないかと思いましたが、IT担当者はサポートしていると保証してくれました...
上記のコードに問題がある人はいますか?Webサーバーが範囲フィールドをサポートしているかどうかをテストする簡単な方法はありますか?
ありがとう!