无法在 Windows 8 应用商店应用程序中为 HttpWebRequest 设置范围标头

本文关键字:HttpWebRequest 设置 范围 应用程序 Windows 应用 | 更新日期: 2023-09-27 18:31:08

我无法在 Windows 8 应用商店应用程序中为 HttpWebRequest 设置范围标头,如果我尝试以不同的方式设置范围,如以下示例代码所示,我会遇到以下异常,必须使用适当的属性或方法修改"范围"标头。参数名称:名称。

在以下条件下设置范围标题的替代方案是什么。1.通过设置允许读取流缓冲 = false 的即时响应回调;这样我就可以不断地将其写入文件并获得下载进度。

代码是:

WebHeaderCollection headers = new WebHeaderCollection();
headers[HttpRequestHeader.Range] = "bytes=" + CurrentBufferPointer + "-"; 
HttpWebRequest DownLoadClient = (HttpWebRequest)WebRequest.Create(this.FileUri);
DownLoadClient.Method = "GET";
DownLoadClient.AllowReadStreamBuffering = false;

设置以下两种方式中的任何一种都会引发异常

DownLoadClient.Headers = headers;   
Or 
DownLoadClient.Headers[HttpRequestHeader.Range] = "bytes=" + CurrentBufferPointer +  "-";
DownLoadClient.BeginGetResponse(new AsyncCallback(GetResponseCallback), DownLoadClient);

当我设置 DownLoadClient.Headers = headers 时;会出现以下异常:

无法在 Windows 8 应用商店应用程序中为 HttpWebRequest 设置范围标头

试试这个

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);