HttpClient.GetAsync नेटवर्क क्रेडेंशियल्स के साथ


93

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

जवाबों:


166

आप HttpClientHandler वर्ग का एक उदाहरण HttpClient कंस्ट्रक्टर के क्रेडेंशियल्स के साथ पास कर सकते हैं :

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

20
आप इसके UseDefaultCredentials = trueलिएHttpClientHandler
DarkWalker

9
यह करने से इनकी व्यवहार पैदा कर सकता है जब मूल प्रमाणीकरण की आवश्यकता है stackoverflow.com/q/25761214/57428
sharptooth

2
मैंने पाया है कि आप हैंडलर सेट करना चाहेंगे।
गैर गॉडफ्रे

4
HttpClient के एक स्थिर उदाहरण का उपयोग करने की सलाह दी जाती है, विशेष रूप से सर्वर परिदृश्यों में
जेम्स वेस्टगेट

3
तो हमें सर्वर परिदृश्य में क्या करना चाहिए? हम उन मुद्दों पर चल रहे हैं जो आपके पास हैं जब आपके पास एक स्थिर उदाहरण नहीं है लेकिन हमें क्रेडेंशियल में पास होने की आवश्यकता है।
स्कॉट चैंबरलेन 14
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.