我正在尝试为工作项调用发布API(DevOps),但显示状态为“错误请求”。
如果我调用一些GET API(DevOps),则工作正常。我点击以下链接来调用POST API:
代码:
using (var client = new HttpClient())
{
string content = "{'query': 'Select [System.Id], [System.Title], [System.State] From WorkItems'}";
client.BaseAddress = new Uri("http://YYYYY.com:8080/tfs/YY"); //url of your organization
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", credentials);
var response = client.PostAsJsonAsync(new Uri("http://YYYYY.com:8080/tfs/YY/_apis/wit/wiql?api-version=1.0"), content).Result;
if (response.IsSuccessStatusCode)
{
Console.Write("Success");
}
else
Console.Write("Error");
}
答案 0 :(得分:0)
您可以尝试以下代码:
var personalaccesstoken = "xxxxxxxxxx";
var base64Token = Convert.ToBase64String(Encoding.ASCII.GetBytes($":{personalaccesstoken}"));
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", base64Token);
var requestMessage = new HttpRequestMessage(HttpMethod.Post, "http://{tfsserver}:8080/tfs/DefaultCollection/_apis/wit/wiql?api-version=1.0");
requestMessage.Content = new StringContent("{\"query\": \"select [System.Id], [System.Title], [System.State] from WorkItems\"}", Encoding.UTF8, "application/json");
using (HttpResponseMessage response = client.SendAsync(requestMessage).Result)
{
response.EnsureSuccessStatusCode();
}
}