Tôi hiện đang sử dụng HttpWebRequest
để nhận một trang web. Tôi muốn sử dụng mẫu chờ đợi, không được cung cấp cho HttpWebRequests
. Tôi tìm thấy lớp học HttpClient
, có vẻ là lớp công nhân Http mới. Tôi đang sử dụng HttpClient.GetAsync(...)
để truy vấn trang web của mình. Nhưng tôi thiếu tùy chọn để thêm ClientCredentials
như HttpWebRequest.Credentials
. Có cách nào để cung cấp thông tin xác thực HttpClient
không?HttpClient.GetAsync với thông tin đăng nhập mạng
72
A
Trả lời
125
Bạn có thể vượt qua một thể hiện của các HttpClientHandler Class với các thông tin đến HttpClient Constructor:
using (var handler = new HttpClientHandler { Credentials = ... })
using (var client = new HttpClient(handler))
{
var result = await client.GetAsync(...);
}
Bạn cũng có thể thiết lập 'UseDefaultCredentials = true' cho 'HttpClientHandler' – DarkWalker
Điều này có thể gây ra hành vi tối ưu khi * Basic * xác thực là yêu cầu http://stackoverflow.com/q/25761214/57428 – sharptooth
Tôi đã tìm thấy bạn sẽ muốn đặt handler.ClientCertificateOptions = ClientCertificateOption.Automatic để thực sự có tín dụng được gửi. –