我编写了一个客户端应用程序,该应用程序假设是要从Web服务器下载文件的,非常简单:

using (WebClient webClient = new WebClient())
{
    webClient.DownloadFile("http://localhost/audiotest/audio.wav",
                           @"C:\audio.wav");
}

该网站(音频文件位于:http://localhost/audiotest/audio.wav)具有标题Transfer-Encoding:chunked

运行程序时,出现以下错误:



服务器包含Transfer-Encoding:块头时,如何下载文件?

最佳答案

我还没有尝试过,但这可能行得通:

如果您强制发送对Http 1.0而不是Http 1.1的请求,则服务器将回复
HTTP header ,指定内容长度

HttpWebRequest wr = (HttpWebRequest)WebRequest.Create("http://localhost/audiotest/audio.wav");
wr.ProtocolVersion = Version.Parse("1.0");

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

您将以response.GetResponseStream()的流形式获取文件

全部归功于this的作者

关于c# - C#使用WebClient下载分块的编码内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10006669/

10-13 06:52