Frage

OK, ich habe einen Client eine POST an einen Server mit einigen Daten zu tun. Der Server empfängt die Post, und antwortet mit einer Umleitung. Das Problem besteht darin, dass der Client leitet nicht. Auch ich habe versucht, den Statuscode der Antwort zu überprüfen, der Kunde bekommt, und es ist immer die gleiche „OK“. Anstelle des Redirect-Code. Was bin ich?

In der Client-Seite Ich habe so etwas wie folgt aus:

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

In der Server-Seite Ich habe nur diese Zeile:

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

In diesem Fall erhält der Kunde eine Antwort und nichts nicht tun.

Danke.

War es hilfreich?

Lösung

Wenn Sie „AllowAutoRedirect“ auf true gesetzt haben, bedeutet dies, dass Ihr HttpWebRequest Objekt einen zweiten webrequest machen, sobald es eine Umleitung sieht. Wenn Sie die „200 OK“ aus dem Response-Objekt zu sehen, ist es, weil Sie die Antwort für „www.google.com“ sehen. Sie können die Response.ResponseURI überprüfen, dies zu überprüfen.

Sie müssen das „AllowAutoRedirect“, dann überprüfen Sie den Antwortcode wie Oded sagte auszuschalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top