C# 在Metro应用程序中设置HttpWebRequest头上的范围

C# 在Metro应用程序中设置HttpWebRequest头上的范围,c#,.net,http-headers,windows-store-apps,C#,.net,Http Headers,Windows Store Apps,我正在使用windows应用商店应用程序,我试图为HttpWebRequest上的范围标头设置一个值,但我不知道如何执行此操作。我尝试过的3种解决方案不起作用(异常或方法/属性不存在,即使它们在msdn文档中) 我知道HttpWebRequest处于半弃用状态,但我不想使用HttpClient类。我不喜欢在http请求失败时如何检索错误代码 有人有想法吗?在您的初始标题中 getRequest.Headers[HttpRequestHeader.Range] = "bytes="+downloa

我正在使用windows应用商店应用程序,我试图为HttpWebRequest上的范围标头设置一个值,但我不知道如何执行此操作。我尝试过的3种解决方案不起作用(异常或方法/属性不存在,即使它们在msdn文档中)

我知道HttpWebRequest处于半弃用状态,但我不想使用HttpClient类。我不喜欢在http请求失败时如何检索错误代码


有人有想法吗?

在您的初始标题中

getRequest.Headers[HttpRequestHeader.Range] = "bytes="+download.DownloadedBytes+"-";
我不确定download.DownloadedBytes的值是多少,但我不相信该字符串会满足范围字段标题。字符串的格式应为“bytes=500-999”

我还没有用HttpWebRequest实现这一点,但我可以为HttpClient提供一个示例(对不起,我知道您不想切换到这个,但这可能是最好的)


当然,应该注意的是,并非所有的web服务器都会遵守范围标头。祝你好运

我不再处理这个项目了,但如果我记得的话,例外是关于对该方法的一些受限访问。很遗憾,我现在无法测试您的解决方案。然而,对于这个项目,我只是在客户端和服务器端工作时设置了自己的头。无论如何,谢谢你的回答,我会测试你的解决方案(有一天)
getRequest.Headers[HttpRequestHeader.Range] = "bytes="+download.DownloadedBytes+"-";
var client = new HttpClient(handler);
client.DefaultRequestHeaders.Add("range", @"bytes=0-9000");
var response = await client.GetAsync(url);