के माध्यम से प्रमाणीकृत अनुरोधों में विफल रहा है हम HTTPWebRequest
ऑब्जेक्ट्स का उपयोग हमारे आवेदन पर HTTP अनुरोध करने के लिए कर रहे हैं और अनुरोध में प्रमाणीकरण की आवश्यकता होने पर हमें समस्या हो रही है और एक पारदर्शी प्रॉक्सी (स्क्विड 3.1.10)।HTTPWebRequest.GetResponse() एक पारदर्शी प्रॉक्सी
string url = "http://www.icode.co.uk/test/auth.php";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Credentials = new NetworkCredential("username", "password");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream);
MessageBox.Show(reader.ReadToEnd());
reader.Close();
stream.Close();
response.Close();
हमारे मूल कोड WebClient वर्ग जो एक ही समस्या का प्रदर्शन किया करते थे।
पहली बार यह कोड चलता है, यह परिणाम सही ढंग से प्रदर्शित करता है। कोड को दूसरी बार चलता है, इसके साथ GetResponse()
लाइन पर विफल रहता है:
System.Net.WebException was unhandled
Message="The server committed a protocol violation. Section=ResponseStatusLine"
Source="System"
StackTrace:
at System.Net.HttpWebRequest.GetResponse()
at Dummy.DummyForm.button1_Click(Object sender, EventArgs e) in H:\Trial\Dummy\DummyForm.cs:line 42
at ...
विंडोज 7 पर, प्रक्रिया को पुन: प्रारंभ यह ठीक है और एक बार काम करने के लिए कारण बनता है, लेकिन सर्वर 2003 में एक पूर्ण रिबूट की आवश्यकता है।
network capture को देखते हुए, दो अनुरोध, के साथ प्रारंभिक अप्रमाणित अनुरोध भेज दिया जाता है और सर्वर उत्तर, लेकिन नाकाम रहने के अनुरोध के रूप में अगर यह Content-Length
अनदेखी है प्रारंभिक जबाब के बीच में 2 प्रमाणीकृत अनुरोध भेजता है शुरू करने के लिए समान हैं हेडर (जो सही है)। इसके बाद शेष प्रारंभिक उत्तर प्राप्त होता है और प्रोटोकॉल त्रुटि के साथ विफल रहता है।
यह अजीब है कि ग्राहक (HTTPWebRequest
) कनेक्शन बंद नहीं होती है सफाई से हालांकि प्रतीत होता है।
जब प्रॉक्सी उपयोग में नहीं है (गैर पोर्ट 80 या आंतरिक यातायात) अनुरोध सभी अपेक्षित कार्य करते हैं। जब कोई प्रमाणीकरण नहीं होता है, तो यह भी काम करता है क्योंकि यह केवल एक ही अनुरोध करता है।
मैंने पहले से ही समस्या कोड को कम से कम कर दिया है और इसे एमएसडीएन नमूना के साथ पुन: उत्पन्न किया है, लेकिन क्या किसी को पता है कि यह ज्ञात समस्या है या हमारे (.NET या Squid) कॉन्फ़िगरेशन में कोई समस्या है?
यह सुनिश्चित नहीं है कि यह समस्या कहां है, लेकिन क्या आप अपना स्ट्रीमरडर बंद करने के दौरान सुनिश्चित कर रहे हैं? –
स्क्रीनशॉट जोड़ने के लिए धन्यवाद। क्या आपने प्राधिकरण की जानकारी को पहले जीईटी से बाहर कर दिया था, या क्या इसमें कोई भी शामिल नहीं था? –
मैंने अपना जवाब हटा दिया है, क्योंकि यह स्पष्ट है कि यह लागू नहीं होता है। –