HttpWebRequest.GetResponse在没有内容的情况下挂起响应

时间:2013-02-21 12:34:45

标签: .net http httpwebresponse

我写了一个小的“网络服务器”,它重放了对所有内容的预制回复。在这种情况下:

HTTP/1.1 404 Not Found\r\n
\r\n

以下客户端代码挂起,直到TCP超时开始:

using (WebResponse response = WebRequest.Create(url).GetResponse()) { }

我与Wireshark进行了对话,所有数据都被正确发送和接收。 GetResponse收到上述回复后会一直等待。但它不应该 - 这是一个有效的HTTP响应,对吧?怎么了?

当我向响应添加任何内容时,一切都按预期工作。

1 个答案:

答案 0 :(得分:1)

我怀疑客户端因缺少Content-Length标头而感到困惑 - 它不知道它可能收到多少内容,所以它正在等待服务器关闭连接,没有发生。

尝试添加

Content-Length: 0

到响应标题。