2012-04-24 9 views
72

मैं वर्तमान में वेबसाइट प्राप्त करने के लिए HttpWebRequest का उपयोग कर रहा हूं। मैं प्रतीक्षा पैटर्न का उपयोग करना चाहता हूं, जो HttpWebRequests के लिए नहीं दिया गया है। मुझे कक्षा HttpClient मिली, जो कि नई एचटीपी कार्यकर्ता वर्ग है। मैं अपने वेबपृष्ठ से पूछने के लिए HttpClient.GetAsync(...) का उपयोग कर रहा हूं। लेकिन मुझे ClientCredentials जैसे HttpWebRequest.Credentials जोड़ने का विकल्प गुम है। क्या HttpClient प्रमाणीकरण जानकारी देने का कोई तरीका है?नेटवर्क प्रमाण-पत्रों के साथ HttpClient.GetAsync

उत्तर

125

आप HttpClient Constructor को पहचान के साथ HttpClientHandler Class का एक उदाहरण पारित कर सकते हैं:

using (var handler = new HttpClientHandler { Credentials = ... }) 
using (var client = new HttpClient(handler)) 
{ 
    var result = await client.GetAsync(...); 
} 
+13

तुम भी के लिए 'UseDefaultCredentials = TRUE' सेट कर सकते हैं' HttpClientHandler' – DarkWalker

+7

यह करने से इनकी व्यवहार पैदा कर सकता है * बेसिक * प्रमाणीकरण है जब आवश्यक http://stackoverflow.com/q/25761214/57428 – sharptooth

+1

मुझे पता चला है कि आप हैंडलर सेट करना चाहते हैं। क्लाइंट सर्टिफिकेटऑप्शन = क्लाइंट सर्टिफिकेटऑप्शन। वास्तव में क्रेडिट राजधानियों को भेजने के लिए स्वचालित। –