【问题标题】:Unable to set range header for HttpWebRequest in windows 8 store application无法在 Windows 8 商店应用程序中为 HttpWebRequest 设置范围标头
【发布时间】:2013-09-13 20:41:12
【问题描述】:

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

在以下条件下设置范围标题的替代方法是什么。 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;

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

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

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

当我设置 DownLoadClient.Headers = headers;这个例外会来:

【问题讨论】:

    标签: c# windows-8


    【解决方案1】:

    试试这个

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

    【讨论】:

    • 但是使用 HTTPclient 不能下载块并稍后从它停止的地方恢复......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多