Estoy tratando de descargar algunos datos de una URL usando HttpWebRequest desde una aplicación de consola C #. En el navegador y Postman, funciona bien, pero no desde la aplicación, no devuelve los datos esperados. Usando Fiddler, inspeccioné la solicitud y descubrí que la solicitud enviada inicialmente en realidad se redirige tres veces (veo tres http 302 en Fiddler antes de la respuesta final de Http 200) y finalmente devuelve los datos. Sin embargo, de mi aplicación de consola C # obtengo solo la respuesta final - el estado de HttpWebResponse siempre da "OK" (200).

Noté en Fiddler que http 302 devuelve pocas cookies y la solicitud posterior envía las cookies en su encabezado. Esto se maneja correctamente en el navegador / cartero, pero no puedo hacerlo en mi aplicación. Cualquier ayuda será muy apreciada.

 HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); 

Fiddler screenshot

0
Thomas 17 dic. 2016 a las 01:19

1 respuesta

La mejor respuesta

Creo que está buscando la propiedad AllowAutoRedirect de la clase HttpWebRequest. Establecerlo en false debería hacer lo siguiente:

HttpWebRequest request = new HttpWebRequest(someUri);  
request.AllowAutoRedirect = false;  

Puede leer más información sobre HttpWebRequest aquí.

2
Grim Maple 17 dic. 2016 a las 02:17