2009-02-05 22 views
18

में httpWebRequest का उपयोग करते समय त्रुटि संदेश vb.net में webrequest क्लास का उपयोग करके मैं "http://www.google.com/?q=random" जैसे किसी पृष्ठ का अनुरोध करने का प्रयास कर रहा हूं। हम फ़ायरवॉल के पीछे हैं, इसलिए हमें अपने अनुरोधों को प्रमाणित करना होगा। मुझे अपने प्रमाण-पत्र जोड़कर प्रमाणीकरण भाग प्राप्त हुआ है। लेकिन एक बार यह काम करता है यह एक पुनर्निर्देशित पाश में जाना प्रतीत होता है।"बहुत से स्वचालित पुनर्निर्देशन का प्रयास किया गया था" .NET

किसी को भी एक विचार, टिप्पणियाँ, suggetions क्यों है है? क्या किसी और ने इस समस्या का अनुभव किया है?

Dim loHttp As HttpWebRequest = CType(WebRequest.Create(_url), HttpWebRequest) 
loHttp.Timeout = 10000 
loHttp.Method = "GET" 
loHttp.KeepAlive = True 
loHttp.AllowAutoRedirect = True 
loHttp.PreAuthenticate = True 
Dim _cred1 As NetworkCredential = ... //this is setup 
//snip out this stuff 
loHttp.Credentials = _cc 
loWebResponse = loHttp.GetResponse() 

उत्तर

41

सुनिश्चित करें कि आपके पास कुकी कंटेनर सेटअप है।

CookieContainer cookieContainer = new CookieContainer(); 
loHttp.CookieContainer = cookieContainer; 

आप शायद कुकीज़ बचत नहीं कर रहे हैं और एक रीडायरेक्ट लूप में पकड़े जाने।

+0

हाँ, यह पूरी तरह से सही है। धन्यवाद। – tooleb

+0

यह सिर्फ मुझे दर्द और पीड़ा के घंटों से बचाया! आपका बहुत बहुत धन्यवाद! : डी – Maritim

2

मैंने सी # का अनुवाद किया है जो डेरिल को वीबी प्रदान किया गया है और इसे GetResponse कॉल से पहले डाला गया है।

Dim cookieContainer As CookieContainer = New CookieContainer() 
loHttp.CookieContainer = cookieContainer 
loWebResponse = loHttp.GetResponse() 
0

हो सकता है, आपको प्रत्येक पुनर्निर्देशन के लिए कैच स्थान के आधार पर प्रतिक्रिया से संसाधित करने और उपयुक्त कुकीज़ का उपयोग कर सकते हैं।

7
loHttp.AllowAutoRedirect = true 
इसके बजाय इस बात का

, आप

loHttp.AllowAutoRedirect = False 

उपयोग करने के लिए त्रुटि त्रुटि

"बहुत अधिक स्वत: REDIRECTION का प्रयास किया गया था" से बचने के लिए है

+0

यह गलत है। [MSDN प्रलेखीकरण] (http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.allowautoredirect (v = vs.110) .aspx) 'HttpWebRequest.AllowAutoRedirect' संपत्ति राज्यों के लिए:" 'AllowAutoRedirect' को * true * पर सेट करें यदि आप संसाधन के नए स्थान पर स्वचालित रूप से HTTP पुनर्निर्देशन शीर्षलेखों का पालन करने का अनुरोध चाहते हैं। अनुवर्ती पुनर्निर्देशन की अधिकतम संख्या' अधिकतम स्वचालित सीमाओं 'प्रॉपर्टी द्वारा निर्धारित की जाती है। उपर्युक्त लिंक .NET 4.5 के लिए है, लेकिन दस्तावेज़ एक ही चीज़ को वापस 2.0 तक कहते हैं। – David

+0

कुछ मामलों में आपको इसे "झूठी" पर सेट करने की आवश्यकता है यदि आपके पास यह त्रुटि दिखाई दे रही है। – fgalarraga

+0

यह "काम" प्रतीत होता है क्योंकि यह वास्तव में ऑटो रीडायरेक्ट का पालन नहीं करता है, यह केवल पहले पृष्ठ पर बंद हो जाता है। तो आप जो करना चाहते हैं उसके आधार पर यह निर्धारित करेगा कि यह उत्तर सही है या नहीं। यह ** आपको ** उसी स्थान पर नहीं ले जाएगा जो ब्राउज़र आपको प्राप्त करेगा। – Jim

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