这是我在 C# 中编写的类似解决方案,用于返回 Ticket 类型的所有工作项的列表。我能够利用接受的答案中提供的示例并查看此处的文档来构建此结果
public QueryResult GetTickets()
{
try
{
var token = "****";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
Convert.ToBase64String(
System.Text.ASCIIEncoding.ASCII.GetBytes(
string.Format("{0}:{1}", "", token))));
var query = "Select [System.Id], [System.Title], [System.State] From WorkItems Where [System.WorkItemType] = 'Ticket' AND [State] <> 'Closed' order by [Microsoft.VSTS.Common.Priority] asc, [System.CreatedDate]";
var content = new StringContent("{ \"query\": \"" + query + "\" }", Encoding.UTF8, "application/json");
var url = "https://{account}.visualstudio.com/_apis/wit/wiql?api-version=4.1";
using (HttpResponseMessage response = client.PostAsync(url, content).Result)
{
response.EnsureSuccessStatusCode();
string responseBody = response.Content.ReadAsStringAsync().Result;
var result = JsonConvert.DeserializeObject<QueryResult>(responseBody);
return result;
}
}
}
catch(Exception ex)
{
return null;
}
}