Jan*_* K. 90 c# async-await .net-4.5
我目前正在使用HttpWebRequest网站.我想使用await模式,这是没有给出的HttpWebRequests.我找到了这个类HttpClient,它似乎是新的Http工人类.我正在HttpClient.GetAsync(...)用来查询我的网页.但我错过了添加ClientCredentials喜欢的选项HttpWebRequest.Credentials.有没有办法提供HttpClient身份验证信息?
dtb*_*dtb 158
您可以将带有凭据的HttpClientHandler类的实例传递给HttpClient构造函数:
using (var handler = new HttpClientHandler { Credentials = ... })
using (var client = new HttpClient(handler))
{
var result = await client.GetAsync(...);
}
Run Code Online (Sandbox Code Playgroud)
小智 7
您不应该每次都丢弃 HttpClient,而应该长时间使用它(或一小部分客户端)(应用程序的生命周期)。您也不需要它的处理程序,但您可以更改默认标头。
创建客户端后,您可以设置其用于身份验证的默认请求标头。以下是基本身份验证的示例:
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", "username:password".ToBase64());
Run Code Online (Sandbox Code Playgroud)
ToBase64() 表示将字符串转换为 Base64 编码的辅助函数。
| 归档时间: |
|
| 查看次数: |
69927 次 |
| 最近记录: |