使用REST api从代码在线连接到TFS

时间:2014-10-28 18:13:17

标签: c# .net json tfs tfs2012

我试图通过我的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,但没有什么接近我需要的,我做错了什么?

非常感谢你的时间。

1 个答案:

答案 0 :(得分:3)

您的代码对我来说似乎是正确的。您是否为VSO帐户启用了备用凭据?没有它,它就不会工作。这是link解释如何操作的方法。

您还可以在codeplex上查看我的项目:https://vsorest.codeplex.com/它展示了如何使用C#

来使用某些VSO REST API