0

私は、すべてに対して事前に作成された応答を再生する小さな「Webサーバー」を作成しました。この場合:

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 に答える