URL 中的 HttpClient 和基本身份验证
HttpClient and Basic Auth in URL
我想通过在 URL 中指定用户名和密码来使用 HttpClient
和 HTTP 基本身份验证,如下所示:
var request = new HttpRequestMessage(HttpMethod.Get,
"https://username:password@example.com");
using (var client = new HttpClient()) {
await client.SendAsync(request);
}
但是没有 Authorization
header 与请求一起发送。
有没有办法告诉 HttpClient 支持这个,还是我必须手动从 URL 获取凭据并自己设置 header?
您需要设置 header 而不是通过 URL
var byteArray = Encoding.ASCII.GetBytes("username:password1234");
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
我想通过在 URL 中指定用户名和密码来使用 HttpClient
和 HTTP 基本身份验证,如下所示:
var request = new HttpRequestMessage(HttpMethod.Get,
"https://username:password@example.com");
using (var client = new HttpClient()) {
await client.SendAsync(request);
}
但是没有 Authorization
header 与请求一起发送。
有没有办法告诉 HttpClient 支持这个,还是我必须手动从 URL 获取凭据并自己设置 header?
您需要设置 header 而不是通过 URL
var byteArray = Encoding.ASCII.GetBytes("username:password1234");
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));