Это не возвращает XML.Возвращается HTML .Это почти наверняка, потому что вы перенаправлены на страницу входа.Вы перенаправлены на страницу входа в систему, потому что вы не проходите аутентификацию должным образом.
Я не знаю значения HeaderTool.nCred
, но это почти наверняка не правильно.Вы должны использовать личный токен аутентификации или токен OAuth для аутентификации в VSTS.
Существует клиентских библиотек , которые вы можете использовать для правильной аутентификации.Я бы порекомендовал реализовать их вместо того, чтобы свернуть свои собственные.
Вы также можете передать PAT для аутентификации через стандартные клиентские библиотеки HTTP.
Соответствующий фрагмент для вашего сценария:
public static async void GetBuilds()
{
try
{
var personalaccesstoken = "PATFROMWEB";
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://{account}.visualstudio.com/DefaultCollection/_apis/build-release/builds").Result)
{
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
Обратите внимание, что PAT кодируется в BASE64 и передается через заголовок аутентификации.