2012-04-04 11 views
7

escribí una aplicación cliente que se supone que debe descargar un archivo desde un servidor web, muy simple:C# utilizando WebClient para descargar fragmentada contenido codificado

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

El sitio web (donde encuentra el archivo de audio: http://localhost/audiotest/audio.wav) tiene encabezado Transfer-Encoding: fragmentada

cuando ejecuto el programa, consigo el error siguiente:

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

¿Cómo puedo descargar el archivo al servidor contiene Transfer-Encodin g: encabezado dividido?

Respuesta

4

Yo no lo he probado, pero esto podría funcionar:

Si enérgicamente envía una solicitud de HTTP 1.0 en lugar de HTTP 1.1 a continuación, el servidor responderá con encabezado HTTP Content-Length especificando

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

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

Usted recibirá el archivo como corriente en response.GetResponseStream()

Todo el crédito al autor de this

Cuestiones relacionadas