1

Windows 8 ストア アプリケーションで HttpWebRequest の範囲ヘッダーを設定できません。以下のサンプル コードのようにさまざまな方法で範囲を設定しようとすると、次の例外が発生します。「Range」ヘッダーは、適切なプロパティまたはメソッドを使用して変更する必要があります。 .パラメータ名: 名前。

次の条件で範囲ヘッダーを設定するための私の代替手段は何ですか。1.AllowReadStreamBuffering = false を設定することによる即時応答コールバック。継続的にファイルに書き込み、ダウンロードの進行状況を取得できるようにします。

コードは次のとおりです。

WebHeaderCollection headers = new WebHeaderCollection();
headers[HttpRequestHeader.Range] = "bytes=" + CurrentBufferPointer + "-"; 

HttpWebRequest DownLoadClient = (HttpWebRequest)WebRequest.Create(this.FileUri);
DownLoadClient.Method = "GET";
DownLoadClient.AllowReadStreamBuffering = false;

// 以下の 2 つの方法のいずれかを設定すると、例外がスローされます

DownLoadClient.Headers = headers;   
Or 
DownLoadClient.Headers[HttpRequestHeader.Range] = "bytes=" + CurrentBufferPointer +  "-";

DownLoadClient.BeginGetResponse(new AsyncCallback(GetResponseCallback), DownLoadClient);

DownLoadClient.Headers = headers; を設定しているとき。この例外が発生します:

4

1 に答える 1

0

これを試して

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, this.FileUri);
request.Headers.Range = new RangeHeaderValue(0, 1024); //if range is of "bytes=0-1024";
var response = await client.SendAsync(request);
于 2013-09-13T12:41:12.330 に答える