// response is an HttpWebResponse
StreamReader reader = new StreamReader(response.GetResponseStream());
string output = reader.ReadToEnd(); // throws exception...
reader.ReadToEnd()
方法があります次のSystem.IO.IOExceptionを取得しています。トランスポート接続からデータを読み取れません。接続が閉じられました。
上記のコードは、サーバーが「チャンクなし」応答を返すときにうまく機能します。
私はそれを動作させることができた唯一の方法は、最初の要求(HTTP/1.1ではなく、デフォルト)でHTTP/1.0を使用することですが、これは不自然な回避策のようです。
アイデア?
@Chuck
あなたの解決策は、かなり良い作品。それは最後のRead()に同じIOExeceptionをスローします。しかし、StringBuilderの内容を調べると、すべてのデータが受信されたように見えます。だから、おそらく私はちょうどtry-catchでRead()をラップし、 "エラー"を飲み込む必要があります。
チャンク応答を読み取るには、あなたがhttp://en.wikipedia.org/wiki/Chunked_transfer_encoding –
を実行する必要があり、私は、.NET 4.6でこの振る舞いを見ていますPowerDNS 3.4.5 HTTP REST APIに接続します。回避策は役に立たない。私が例外を飲み込むと、私は応答の一部を失う。 –