Ağ kimlik bilgileriyle HttpClient.GetAsync


94

Şu anda HttpWebRequestbir web sitesi almak için kullanıyorum . İçin verilmeyen bekleme modelini kullanmak istiyorum HttpWebRequests. HttpClientYeni Http işçi sınıfı gibi görünen sınıfı buldum . HttpClient.GetAsync(...)Web sayfamı sorgulamak için kullanıyorum . Ama ekleme seçeneği kaçırıyorum ClientCredentialsgibi HttpWebRequest.Credentials. HttpClientKimlik doğrulama bilgilerini vermenin herhangi bir yolu var mı ?

Yanıtlar:


167

HttpClientHandler Sınıfının bir örneğini kimlik bilgileriyle HttpClient Oluşturucusuna iletebilirsiniz :

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

20
Ayrıca ayarlayabilirsiniz UseDefaultCredentials = trueiçinHttpClientHandler
Aleksei Poliakov'a

9
Bu, Temel kimlik doğrulama gerektiğinde yetersiz davranışa neden olabilir stackoverflow.com/q/25761214/57428
sharptooth

2
Kredilerin gerçekten gönderilmesi için handler.ClientCertificateOptions = ClientCertificateOption.Automatic 'i ayarlamak isteyeceğinizi fark ettim.
Garr Godfrey

5
Özellikle sunucu senaryolarında HttpClient'in statik bir örneğinin kullanılması önerilir
James Westgate

3
Peki sunucu senaryolarında ne yapmalıyız? Statik bir örneğiniz olmadığında karşılaştığınız sorunlara koşuyoruz, ancak kimlik bilgilerini iletmemiz gerekiyor.
Scott Chamberlain
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.