Question

OK, j'ai un client de faire un POST sur un serveur avec quelques données.Le serveur reçoit la poste, et répond avec un service de redirection.Le problème est que le client n'a pas de redirection.Aussi, j'ai essayé de vérifier les StatusCode de la réponse que le client obtient, et c'est toujours la même "OK".Au lieu de le code de redirection.Ce qui me manque?

Du côté client, j'ai quelque chose comme ceci:

  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) {}

Dans le côté serveur, j'ai juste cette ligne:

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

Dans ce cas, le client reçoit une réponse et ne pas ne rien faire.

Merci.

Était-ce utile?

La solution

Lorsque vous avez "AllowAutoRedirect" est défini à true, cela signifie que votre objet HttpWebRequest va faire un 2ème webrequest une fois qu'il voit une redirection.Quand vous voyez le "200 OK" de l'objet de réponse, c'est parce que vous êtes en voyant la réponse de "www.google.com".Vous pouvez vérifier la Réponse.ResponseURI pour vérifier cela.

Vous aurez besoin de désactiver le "AllowAutoRedirect", puis vérifiez le code de réponse comme Oded dit.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top