Pregunta

Tengo un programa bastante simple que toma una URL y escupe el primer lugar al que redirige. De todos modos, lo he estado probando en algunos enlaces y noté que hay 400 errores en algunas URL. Intenté probar esas URL pegándolas en mi navegador y funcionó bien.

    static string getLoc(string curLoc, out string StatusDescription, int timeoutmillseconds)
    {
        HttpWebRequest x = (HttpWebRequest)WebRequest.Create(curLoc);            
        x.UserAgent = "Opera/9.52 (Windows NT 6.0; U; en)";
        x.Timeout = timeoutmillseconds;            
        x.AllowAutoRedirect = false;
        HttpWebResponse y = null;
        try
        {
            y = (HttpWebResponse)x.GetResponse(); //At this point it throws a 400 bad request exception.
¿Fue útil?

Solución

Creo que algo extraño está sucediendo con las cookies. Resulta que debido a la forma en que estaba probando el enlace, las cookies necesarias para que funcionara estaban en mi navegador, pero no en el enlace. Resulta que algunos de los enlaces que estaba probando manualmente (cuando fallaron los otros enlaces) generaban cookies.

Es un poco complicado lo que sucedió, pero la respuesta corta es que mi navegador tenía cookies, el programa no, mantener las cookies entre redirecciones no resolvió el problema.

El problema subyacente es causado por el hecho de que el enlace que estoy probando requiere un parámetro adicional o una cookie o ambos. Intenté evitar ambos en mis pruebas ya que el parámetro / cookie era para el seguimiento y no quería interrumpir el seguimiento.

En resumen, sé cuál es el problema, pero no es un problema solucionable.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top