Pregunta

Está bien, tengo un cliente haciendo un POST a un servidor con algunos datos. El servidor recibe el mensaje y responde con una redirección. El problema es que el cliente no vuelve a dirigir. Además, he tratado de comprobar la StatusCode de la respuesta del cliente obtiene, y siempre es el mismo "OK". En lugar del código de redirección. ¿Qué me falta?

En el lado del cliente Tengo algo como esto:

  StringBuilder sb;
        try
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost/serv/Default.aspx");
            request.Method = "POST";                

        byte[] data = Encoding.ASCII.GetBytes(GetDATA());

        request.ContentType = "text/xml";
        request.ContentLength = data.Length;
        Stream stream = request.GetRequestStream();
        stream.Write(data, 0, data.Length);

        request.AllowAutoRedirect = true;
        request.MaximumAutomaticRedirections = 10;

        HttpWebResponse response = (HttpWebResponse) request.GetResponse();
            response.Close(); } catch(Exception ex) {}

En el lado del servidor que acabo de esta línea:

HttpContext.Current.Response.Redirect("http://www.google.com", true);

En este caso, el cliente recibe una respuesta y no hace nada.

Gracias.

¿Fue útil?

Solución

Cuando se tiene "AllowAutoRedirect" se define como true, significa que el objeto HttpWebRequest hará una segunda WebRequest una vez que se ve una redirección. Cuando vea el mensaje "200 OK" del objeto de respuesta, es porque usted está viendo la respuesta de "www.google.com". Puede comprobar el Response.ResponseURI para verificar esto.

Usted tendrá que desactivar la opción "AllowAutoRedirect", a continuación, compruebe el código de respuesta como Oded dijo.

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