2012-04-04 19 views
7

Napisałem aplikację kliencką, która jest przypuszczać, aby pobrać plik z serwera WWW, bardzo prosty:C# za pomocą WebClient ściągnąć pakietowego zakodowaną treść

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

witrynie internetowej (gdzie znajduje się plik audio: http://localhost/audiotest/audio.wav) ma nagłówek transfer-Encoding: pakietowego

kiedy uruchamiam program, otrzymuję następujący błąd:

The server committed a protocol violation. Section=ResponseBody Detail=Response chunk format is invalid

Jak mogę pobrać plik, gdy serwer zawiera transferowy Encodin g: chunked header?

Odpowiedz

4

nie próbowałem go, ale to może działać:

Jeśli mocno wysłać żądanie HTTP 1.0 zamiast HTTP 1.1, a następnie serwer odpowie nagłówek HTTP Content-Length określające

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

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

Dostaniesz plik jako strumień w response.GetResponseStream()

uznania dla autora this

Powiązane problemy