我编写了一个客户端应用程序,该应用程序应该从网络服务器下载文件,非常简单:
using (WebClient webClient = new WebClient())
{
webClient.DownloadFile("http://localhost/audiotest/audio.wav",
@"C:\audio.wav");
}
网站(音频文件所在位置:http://localhost/audiotest/audio.wav http://localhost/audiotest/audio.wav) 具有标头 Transfer-Encoding: chunked
当我运行该程序时,出现以下错误:
服务器违反了协议。部分=响应正文
详细信息=响应块格式无效
当服务器包含 Transfer-Encoding: chunked 标头时,如何下载文件?
我还没有尝试过,但这可能有效:
如果您强制发送 Http 1.0 而不是 Http 1.1 的请求,那么服务器将回复
指定内容长度的 HTTP 标头
HttpWebRequest wr = (HttpWebRequest)WebRequest.Create("http://localhost/audiotest/audio.wav");
wr.ProtocolVersion = Version.Parse("1.0");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
您将获得文件作为流response.GetResponseStream()
全部归功于作者this http://blog.degree.no/2011/06/webclient-httpwebresponse-problems-with-chunked-transfer-encoding/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)