2010-02-08 53 views
5

好的,我有一個客戶端做一個POST與服務器的一些數據。服務器收到帖子,並用重定向回答。問題是客戶端不重定向。另外,我試圖檢查客戶端得到的響應的狀態碼,它總是一樣的「確定」。而不是重定向代碼。我錯過了什麼?ASP HttpWebRequest和重定向

在客戶身邊,我有這樣的事情:

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

在服務器端的我只有這一行:

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

在這種情況下,客戶端會收到一個答案,不沒做什麼。

謝謝。

回答

6

當您將「AllowAutoRedirect」設置爲true時,這意味着您的HttpWebRequest對象在發現重定向後將生成第二個webrequest。當您看到響應對象的「200 OK」時,這是因爲您看到「www.google.com」的響應。你可以檢查Response.ResponseURI來驗證這一點。

您需要關閉「AllowAutoRedirect」,然後檢查響應代碼,如Oded說的。