我试图通过我的C#代码在线访问TFS中的项目,以便使用RESTapi获取有关构建,任务,项目等的所有数据,我一直在关注在线提供的文档( http://www.visualstudio.com/en-us/integrate/get-started/get-started-rest-basics-vsi),但是,当我想从url获取Json响应时,我总是得到:HTTP代码203:非权威信息,因此我无法获取Json数据。如果我尝试使用POSTMAN(chrome扩展)获得响应,我会得到一个HTTP代码200和我需要的数据。
这是我的代码:
public static async void GetBuilds()
{
try
{
var username = "userTest";
var password = "PassTest";
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}", username, password))));
using (HttpResponseMessage response = client.GetAsync(
"https://myproject.visualstudio.com/DefaultCollection/_apis/build/builds?api-version=1.0-preview.1").Result)
{
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
我总是在响应中得到大量的HTML,但没有什么接近我需要的,我做错了什么?
非常感谢你的时间。
答案 0 :(得分:3)
您的代码对我来说似乎是正确的。您是否为VSO帐户启用了备用凭据?没有它,它就不会工作。这是link解释如何操作的方法。
您还可以在codeplex上查看我的项目:https://vsorest.codeplex.com/它展示了如何使用C#
来使用某些VSO REST API