.net HttpWebRequest下载始终从文件的开头开始,而不会恢复

i2loujxw  于 2023-06-25  发布在  .NET
关注(0)|答案(1)|浏览(87)

我试图添加我的下载实用程序的暂停/恢复功能,但HttpWebRequest.Addrange()方法似乎不能正常工作。我试图用它来恢复下载,但每次我运行应用程序时,webresponse总是从文件的开头开始。
下面是我的代码:

var request = (HttpWebRequest)HttpWebRequest.Create(url);
  request.AddRange((int)iExistLen);
  var downloadStream = request.GetResponse().GetResponseStream();
     for (int byteSize = 0; (byteSize = fileProvider.Read()) > 0;)
            {
                downloadStream.Read(buffer, 0, buffer.Length);
            };

下面是我的下载URL:https://mathinew.blob.core.windows.net/sharedfolder/testfile006.txt
请让我知道,如果有人面临类似的问题,或任何我做错了这里

41zrol4v

41zrol4v1#

从URL中我可以看到您正在使用Azure Blob Storage
默认情况下,它不尊重Range头文件,您需要将版本设置为2011-08-18或更新版本才能使其工作,使用x-ms-version头文件,例如:

request.Headers["x-ms-version"] = "2011-08-18";

你也可以设置Range头的全局版本默认工作,查看this questionthis MSDN page了解更多信息。

相关问题