2010-02-08 18 views
5

ठीक है, मेरे पास एक क्लाइंट कुछ डेटा के साथ सर्वर पर एक पोस्ट कर रहा है। सर्वर को पोस्ट प्राप्त होता है, और रीडायरेक्ट के साथ उत्तर देता है। समस्या यह है कि क्लाइंट रीडायरेक्ट नहीं करता है। साथ ही, मैंने क्लाइंट को प्राप्त प्रतिक्रिया के स्टेटसोड को जांचने का प्रयास किया है, और यह हमेशा "ठीक" होता है। रीडायरेक्ट कोड के बजाय। मैं क्या खो रहा हूँ? मैं तो बस इस लाइन हैएएसपी 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" सत्य पर सेट होता है, तो इसका मतलब है कि आपके HttpWebRequest ऑब्जेक्ट को एक बार फिर से रीडायरेक्ट दिखाई देने पर एक दूसरा वेबरेक्वेस्ट बना देगा। जब आप प्रतिक्रिया ऑब्जेक्ट से "200 ठीक" देखते हैं, तो ऐसा इसलिए होता है क्योंकि आप "www.google.com" के लिए प्रतिक्रिया देख रहे हैं। आप इसे सत्यापित करने के लिए Response.ResponseURI की जांच कर सकते हैं।

आपको "AllowAutoRedirect" को बंद करने की आवश्यकता होगी, फिर ओडेड जैसे प्रतिक्रिया कोड की जांच करें।

संबंधित मुद्दे