C# WebStream 寻求下载 "Chunks" 中的文件



我正在尝试制作一个小程序,通过c#中的HTTP下载文件。基本下载与WebClient工作良好,但现在我想尝试下载具有多个连接的文件。到目前为止:

HttpWebRequest HttpRequest = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse HttpResponse = (HttpWebResponse)HttpRequest.GetResponse();
Stream ResponseStream = HttpResponse.GetResponseStream();
FileStream FSChunk = new FileStream(destination, FileMode.OpenOrCreate, FileAccess.Write);
while ((BytesThisRead = ResponseStream.Read(Buffer, 0, (int)BytesPerRead)) != 0)
{
    FSChunk.Write(Buffer, 0, BytesThisRead);
    TotallyRead += BytesThisRead;
    if (TotalReadLength - TotallyRead < buffersize)
        BytesPerRead = TotalReadLength - TotallyRead;
}

我可以使用这个ResponseStream下载文件,也可以使用一个ResponseStream分成2部分。我的问题是,WebStreams是不可寻找的,所以我不能只是设置一个位置来读取。我如何管理下载一个文件在HTTP同时使用不同的流(连接,我认为一个流不能被多个成员使用)。我在这里读了很多文章,在谷歌上搜索了几个小时,但我找不到解决方案。分块传输编码与这个主题有什么关系吗?

最诚挚的问候,达蒙

您需要在请求时调用AddRange -这在http header中设置了一个content range,它告诉服务器您正在请求的文件的哪一部分。

见http://msdn.microsoft.com/en-us/library/dd992108.aspx

相关内容

  • 没有找到相关文章

最新更新