C# WebRequest.AddRange不';t返回正确的内容长度

C# WebRequest.AddRange不';t返回正确的内容长度,c#,httpwebrequest,httpwebresponse,addrange,C#,Httpwebrequest,Httpwebresponse,Addrange,我想下载url中的文件。但是它返回了错误的内容大小,我不知道为什么。远程文件有Accept Ranges=bytes如何解决 long start = 536871935, end = 805306878; string url = "http://ipv4.download.thinkbroadband.com/1GB.zip"; var request = (HttpWebRequest)WebRequest.Create(url); request.UserAgent

我想下载url中的文件。但是它返回了错误的内容大小,我不知道为什么。远程文件有
Accept Ranges=bytes
如何解决

long start = 536871935, end = 805306878;
string url = "http://ipv4.download.thinkbroadband.com/1GB.zip";

var request = (HttpWebRequest)WebRequest.Create(url);
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362";
request.AllowAutoRedirect = true;
request.Method = "GET";
request.Timeout = 5000;
request.ReadWriteTimeout = 3000;
request.AddRange(start, end);

var response = (HttpWebResponse)request.GetResponse();
if (response.ContentLength != end - start + 1)
    throw new Exception(string.Format("Returned content size is wrong; start={0}, end={1}, returned = {2}, shouldbe = {3}",
            start, end, response.ContentLength, end - start + 1));
        
中发生“System.exception”类型的异常 Downloadmanager.exe,但未在用户代码中处理

附加信息:返回的内容大小错误 开始=536871935,结束=805306878,返回=536869889,应该是= 268434944

我正在使用而不是
HttpWebRequest
(由Microsoft推荐),并且没有这样的问题

公共类程序
{
私有静态只读HttpClient客户端=新HttpClient();
静态异步任务主(字符串[]args)
{
长起点=536871935,终点=805306878;
尝试
{
使用(HttpRequestMessage请求=新HttpRequestMessage(HttpMethod.Get)http://ipv4.download.thinkbroadband.com/1GB.zip"))
{
request.Headers.Range=新的RangeHeaderValue(开始、结束);
使用(HttpResponseMessage response=await client.SendAsync(请求,HttpCompletionOption.ResponseHeadersRead))
{
response.EnsureSuccessStatusCode();
WriteLine(response.Content.Headers.ContentLength);
控制台写入线(结束-开始+1);
}
}
}
捕获(例外情况除外)
{
控制台写入线(例如消息);
}
Console.ReadKey();
}
}
控制台输出

268434944
268434944