Azure DevOps API 创建工作项 returns 404 错误
Azure DevOps API creating work item returns 404 error
我正在尝试使用 Azure Apis 添加工作任务,但我一直收到 404 错误。我试图获取所有项目并且这有效(所以我的身份验证令牌工作正常)。我什至向令牌授予了所有 Azure 权限,它仍然 returns 404 错误。
public class Main
{
public static void Main(string[] args)
{
AzureClient ac = new AzureClient();
var task = ac.AddTask();
}
}
public class AzureClient
{
private readonly HttpClient _client;
public AzureClient()
{
_client = new HttpClient()
{
Timeout = TimeSpan.FromSeconds(30)
};
_client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// ADDED PAT HERE TO CLIENT
}
public async Task AddTask()
{
List<object> task = new List<object>
{
new { op = "add", path = "/fields/System.Title", value = "Test"}
};
string jsonTask = JsonConvert.SerializeObject(task);
string baseUri = "some base uri";
string uri = $"{baseUri}/_apis/wit/workitems/$Task?api-version=5.0";
// RESPONSE HERE RETURNS 404
var response = _client.PostAsync(uri, new StringContent(jsonTask, Encoding.UTF8, "application/json-patch+json")).Result;
}
}
请在您的代码中使用 'application/json-patch+json'
而不是 'application/json'
:
_client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
如果使用Postman测试Api,会发现错误:
Valid content types for this method are: application/json-patch+json.
这就是我们需要使用 application/json-patch+json
的方式
希望这会有所帮助。
我正在尝试使用 Azure Apis 添加工作任务,但我一直收到 404 错误。我试图获取所有项目并且这有效(所以我的身份验证令牌工作正常)。我什至向令牌授予了所有 Azure 权限,它仍然 returns 404 错误。
public class Main
{
public static void Main(string[] args)
{
AzureClient ac = new AzureClient();
var task = ac.AddTask();
}
}
public class AzureClient
{
private readonly HttpClient _client;
public AzureClient()
{
_client = new HttpClient()
{
Timeout = TimeSpan.FromSeconds(30)
};
_client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// ADDED PAT HERE TO CLIENT
}
public async Task AddTask()
{
List<object> task = new List<object>
{
new { op = "add", path = "/fields/System.Title", value = "Test"}
};
string jsonTask = JsonConvert.SerializeObject(task);
string baseUri = "some base uri";
string uri = $"{baseUri}/_apis/wit/workitems/$Task?api-version=5.0";
// RESPONSE HERE RETURNS 404
var response = _client.PostAsync(uri, new StringContent(jsonTask, Encoding.UTF8, "application/json-patch+json")).Result;
}
}
请在您的代码中使用 'application/json-patch+json'
而不是 'application/json'
:
_client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
如果使用Postman测试Api,会发现错误:
Valid content types for this method are: application/json-patch+json.
这就是我们需要使用 application/json-patch+json
希望这会有所帮助。