[英]How do I use C# REST API HttpClient for both Basic header authentication and for default AD credentials?
[英]c# How do I add 'Authorization: Basic' to my HttpClient header?
我正在嘗試將GET方法發送到Web REST api,並且需要這種形式的授權:
Authorization: Basic <Base64 value of UTF-8 encoded “username:password”>
這個要求給我:
Response status code does not indicate success: 401 (Unauthorized).
碼:
try
{
var client = new HttpClient();
client.BaseAddress = bUrl; // https url
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-type", "application/xml");
client.DefaultRequestHeaders.Add("Authorization", "Basic " + uAuth);
HttpResponseMessage XmlResponse = await client.GetAsync(url);
XmlResponse.EnsureSuccessStatusCode();
string xml = await XmlResponse.Content.ReadAsStringAsync();
Debug.WriteLine(xml);
}
catch (HttpRequestException hre) {
Debug.WriteLine(hre.ToString());
} catch (Exception ex) {
Debug.WriteLine(ex.ToString());
}
盡管uAuth
只是Base64
Username:Password
表示形式:
string uAuth =
Convert.ToBase64String(
Encoding.UTF8.GetBytes("username:password")
);
難道我做錯了什么?
編輯:也嘗試過:
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", uAuth);
您可以使用DefaultRequestHeaders
上的Authorization
屬性:
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", uAuth);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.