2010-02-08 7 views
5

OK, ich habe einen Client einen POST zu einem Server mit einigen Daten. Der Server empfängt den Post und antwortet mit einer Weiterleitung. Das Problem ist, dass der Client nicht umleitet. Außerdem habe ich versucht, den StatusCode der Antwort des Clients zu überprüfen, und es ist immer das gleiche "OK". Anstelle des Weiterleitungscodes. Was vermisse ich?ASP HttpWebRequest und Redirect

In der Client-Seite ich so etwas wie diese:

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 habe ich diese Linie gerade:

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

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

Danke.

Antwort

6

Wenn Sie "AllowAutoRedirect" auf "true" setzen, bedeutet dies, dass Ihr HttpWebRequest-Objekt eine zweite Webanfrage erstellt, sobald es eine Weiterleitung erkennt. Wenn Sie das Antwortobjekt "200 OK" sehen, liegt dies daran, dass die Antwort für "www.google.com" angezeigt wird. Sie können die Response.ResponseURI überprüfen, um dies zu überprüfen.

Sie müssen die "AllowAutoRedirect" deaktivieren, dann überprüfen Sie den Antwortcode wie Oded sagte.