我能够很好地使用Azure Devops Rest API,但突然代码停止工作(甚至Azure Devops在其文档中提供的相同示例)。
我试图撤销现有的PAT并生成新的,仍然无法正常工作。
public static async void PrintBuilds()
{
try
{
var personalaccesstoken = "PAT";
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(
new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
Convert.ToBase64String(
System.Text.ASCIIEncoding.ASCII.GetBytes(
string.Format("{0}:{1}", "", personalaccesstoken))));
using (HttpResponseMessage response = client.GetAsync(
"https://dev.azure.com/{Organization}/{Projcet}/_apis/build/builds?api-version=5.0").Result)
{
esponse.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
我期待一个JSON输出,但我得到HTTP状态302,即重定向到visualstudio.com登录页面 - 这可能表明我的PAT有一些...
此代码表明您没有将用户名传递给auth标头,而您应该这样做,这是我的powershell代码的样子:
$pat = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("user@domain:$token"))