0

我编写了一个小型“网络服务器”,它可以重放对所有内容的预先制作的响应。在这种情况下:

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

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

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

我监视了与 Wireshark 的对话,所有数据都被正确发送和接收。GetResponse在收到上面引用的响应后继续等待。但它不应该——它是一个有效的 HTTP 响应,对吧?怎么了?

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

4

1 回答 1

2

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

尝试添加

Content-Length: 0

到响应头。

于 2013-02-21T12:47:14.167 回答