【发布时间】:2010-11-06 02:32:18
【问题描述】:
HttpWebRequest 用于通过基本身份验证从 ASP.NET 站点下载文件。在许多情况下一切正常,但有些代理会分块答案,如果401 状态码的答案被分块,HttpWebRequest.GetResponse() 会抛出异常。例外是:
System.Net.WebException: The server committed a protocol violation.
Section=ResponseStatusLine
at System.Net.HttpWebRequest.GetResponse()
Trace of answer is:<pre>
"HTTP/1.1 401 Authorization Required\r\nDate: Fri, 26 Jun 2009 04:45:18 GMT\r\nServer: Microsoft-IIS/6.0\r\nX-Powered-By: ASP.NET\r\nX-AspNet-Version: 2.0.50727\r\nWWW-Authenticate: Basic realm=\"iis-server\"\r\nCache-Control: private\r\nContent-Type: text/html; charset=iso-8859-1\r\nVia: 1.1 server\r\nKeep-Alive: timeout=15, max=100\r\nConnection: Keep-Alive\r\nTransfer-Encoding: chunked\r\nContent-Language: en\r\n\r\n0\r\n\r\n0\r\n\r\n
我做了测试,发现Transfer-Encoding: chunked是唯一的异常原因。这是 .NET Framework 2.0 的错误还是有任何 RFC 说不应该分块 401 答案?
【问题讨论】:
-
这个问题是出现在特定代理还是特定文件上?
标签: c# http chunked-encoding