2012-03-22 13 views
16

मेरे पास .NET 4 पर बनाया गया एक कंसोल ऐप है जो इंटरनेट पर सार्वजनिक एपीआई से डेटा पुनर्प्राप्त करने के लिए HttpClient लाइब्रेरी (NuGet के माध्यम से प्राप्त) का उपयोग करता है। कंसोल ऐप प्रॉक्सी के पीछे बैठता है। जिस विंडोज मशीन पर यह बैठता है वह इंटरनेट एक्सप्लोरर में सही प्रॉक्सी सेटिंग्स है। जब कंसोल एप्लिकेशन बाहरी दुनिया तक पहुंचने का प्रयास करता है तो उसे 407 स्थिति दी जाती है - "प्रॉक्सी प्रमाणीकरण आवश्यक"।HttpClient क्लास का उपयोग करते समय प्रॉक्सी के विरुद्ध प्रमाणीकरण कैसे करें?

मैंने अभी तक प्रॉक्सी से निपटने के लिए कोई विशिष्ट कोड नहीं लिखा है। मैं 407 त्रुटि से मान रहा हूं कि एप्लिकेशन प्रॉक्सी को कोई समस्या नहीं दे रहा है, लेकिन प्रॉक्सी अनुरोध को प्रमाणित नहीं कर रहा है।

मेरा सवाल है, क्या प्रॉक्सी प्रमाणीकृत करने के लिए लॉग इन उपयोगकर्ता के प्रमाण-पत्रों का उपयोग करने के लिए HttpClient को सेट करना संभव है? यदि हां, तो कैसे?

var client = new HttpClient(webRequestHandler); 
client.PostAsync(RequestUri, MyContent); 

उत्तर

28

मैं app.config में प्रॉक्सी कॉन्फ़िगरेशन के माध्यम से बहुत आसानी से अपनी समस्या हल करने में कामयाब रहा।

<system.net> 
    <defaultProxy enabled="true" useDefaultCredentials="true"> 
     <proxy usesystemdefault="True" /> 
    </defaultProxy> 
</system.net> 

http://msdn.microsoft.com/en-us/library/dkwyc043.aspx

14

आप प्रोग्राम आप इस्तेमाल कर सकते हैं निम्नलिखित भी ऐसा ही करना चाहता था, तो:

WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials; 

(इन वस्तुओं को `System.Net 'नाम स्थान से कर रहे हैं)।

एमएसडीएन से कुछ और जानकारी: http://msdn.microsoft.com/en-us/library/system.net.webproxy.getdefaultproxy.aspx

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