7

Web サーバーからファイルをダウンロードすることを想定したクライアント アプリケーションを作成しました。非常に単純です。

using (WebClient webClient = new WebClient())
{
    webClient.DownloadFile("http://localhost/audiotest/audio.wav", 
                           @"C:\audio.wav");
}

Web サイト (オーディオ ファイルがある場所: http://localhost/audiotest/audio.wav ) には、ヘッダー Transfer-Encoding: chunked があります。

プログラムを実行すると、次のエラーが発生します。

サーバーがプロトコル違反を犯しました。Section=ResponseBody 詳細=Response チャンク形式が無効です

サーバーに Transfer-Encoding: chunked ヘッダーが含まれている場合、ファイルをダウンロードするにはどうすればよいですか?

4

1 に答える 1

4

私はそれを試していませんが、これはうまくいくかもしれません:

Http1.1ではなくHttp1.0のリクエストを強制的に送信すると、サーバーはContent-Lengthを指定するHTTPヘッダーで応答します

HttpWebRequest wr = (HttpWebRequest)WebRequest.Create("http://localhost/audiotest/audio.wav");
wr.ProtocolVersion = Version.Parse("1.0"); 

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

ファイルをストリームとして取得しますresponse.GetResponseStream()

これの作者へのすべてのクレジット

于 2012-04-04T08:05:57.567 に答える