1

タイトル通り。

リモート サーバーからの HTTP 応答に値がゼロの Content-Length ヘッダーが含まれている場合がありますが、それでも HTTP body が返されます。本体は引き続きブラウザーで jQuery を使用して取得できますが、HttpWebResponse.GetResponseStream() を使用しても何も読み取れません。強制的に読むにはどうしたらいいですか?みんな、ありがとう。

これが私が出会ったHTTPレスポンスの例です。


HTTP/1.1 200 OK

接続: キープアライブ

キャッシュ制御: no-cache,no-store

コンテンツ タイプ: テキスト/プレーン

コンテンツの長さ: 0

日付: 2013 年 9 月 30 日 (月) 09:34:21 GMT

(HTTP ボディ)

4

2 に答える 2

0

ソース コードを調べると、この動作を強制する方法が見つかりませんでした。おそらく、あなたにできることは何もありません。

HTTP パイプラインを無効にしてみてください。その場合、おそらく HttpWebRequest はコンテンツの長さに依存しません。それが役立つ可能性は低いです。

別の HTTP ライブラリを使用するか、 を使用してリクエストを送信してTcpClientください。Fiddler を使用してテンプレート HTTP 要求をコピーし、それを基にして使用できます。多くの作業を行うべきではありません。

ヘッダーを削除する書き換えプロキシを作成することもできます。それはおそらく手間のかかる解決策です。

于 2013-09-30T11:49:28.287 に答える