C# 如何通过RESTAPI在JIRA中创建问题?

C# 如何通过RESTAPI在JIRA中创建问题?,c#,json,jira,dotnet-httpclient,jira-rest-api,C#,Json,Jira,Dotnet Httpclient,Jira Rest Api,我正在用我的json数据向JIRA发送POST请求以创建一个项目,但是我无法在JIRA中创建一个项目,我试图看到来自Fiddler的错误,我得到了以下错误。我正在使用C#并为其创建了控制台应用程序 我发布的JSON数据如下 { "fields": { "project": { "key": "JTL" }, "issuetype": { "name": "BUG" } } } 错误消息如下: {“errorMes

我正在用我的json数据向JIRA发送POST请求以创建一个项目,但是我无法在JIRA中创建一个项目,我试图看到来自Fiddler的错误,我得到了以下错误。我正在使用C#并为其创建了控制台应用程序

我发布的JSON数据如下

{
 "fields": {
     "project": {
         "key": "JTL"
     },
     "issuetype": {
         "name": "BUG"
     }
  }
}
错误消息如下:

{“errorMessages”:[],“errors”:{“issuetype”:“需要问题类型”}

我发布了以下代码中的json数据,请指出我的错误所在

string data=@"{"fields":{"project":{"key":"JTL"},"issuetype":{"name":"BUG"}}}";

//object of HttpClient.
HttpClient client = new HttpClient();

//Putting URI in client base address.
client.BaseAddress = new Uri(uri);

//Putting the credentials as bytes.
byte[] cred = UTF8Encoding.UTF8.GetBytes("jiraUserName" + ":" + "JiraPassword");

//Putting credentials in Authorization headers.
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(cred));

//Putting content-type into the Header.
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

//I am using StringContent because I am creating console application, no any serialize I used for manipulate the string.
var content = new StringContent(data, Encoding.UTF8, "application/json");

//Sending the Post Request to the server. But getting 400 bad Request.
System.Net.Http.HttpResponseMessage response = client.PostAsync("issue", content).Result;

在上面的代码中,您可以看到我正在发送授权用户的凭据并发送数据。

如下更改您的数据:

string data = @"{'fields':{'project':{'key':'JTL'},'summary':'Sample issue','description':'Creating an issue via REST API','issuetype':{'name':'Bug'}}}";

我已经解决了我的问题。我在我的代码中做了一些小的更改,我的代码正在成功运行。 我更改了url

Old Url: https://MyCompany.atlassian.net/rest/api/2/issue
new url: https://MyCompany.atlassian.net/rest/api/latest/issue
在Json中,我做了一个小小的更改,在“issuetype”中的名称是Bug,它当前在我的帐户中不可用,在我的帐户中当前是“TASK”,issuetype可用,所以我将issutype名称从“Bug”更改为“TASK”。现在它工作成功了!,谢天谢地,这浪费了我很多时间。悲哀的:(


也谢谢Abdurrahman Koken.:)干杯

您是否100%肯定您的JSON输出数据包含
issuebug
键?是的,出于我的肯定,有理由,在我当前的JSON描述和摘要键中不存在,但当我将JSON数据与这两个键一起发送时,响应是“摘要”和“描述”未知或不需要,然后我删除了这两个键值,但在JIRA REST api文档中,这两个键值在示例中都被用来演示。您确定访问了正确的端点吗?意思是正确的URL?是的,我确定我的URL,这里也有冲突,在JIRA api文档中,URL是我使用的以下方式,这一个对我有效。我尝试让你知道。我认为问题是“错误”。使用“Bug”代替它,或者jusy复制我的代码片段。我尝试了,但它不起作用,在我的问题中,我提到了字符串数据=@“{”字段“{”项目“{”键“:“JTL”}”,issuetype“{”名称“:“Bug”}}”;这是为了把代码发给其他人。我的json是从包装类创建的,它不是硬编码的。无论如何,我尝试了你的方式,粘贴你的代码中的行,然后我尝试了,仍然存在相同的问题。可能问题没有类似“Bug”的问题类型。首先,您应该获取属于相关问题的问题类型,然后使用这些问题类型中的任何一种创建问题。