我一直在尝试设置一个函数来调用带有参数的jira rest api,然后在jira中创建一个问题。要调用RESTAPI,jira提供了一个文档,描述了如何调用RESTAPI
here
. 网站上给出了curl和json。这是我尝试在中设置的其余API请求
C#
:
curl -D- -u peno.ch:yourpassword -H "Content-Type: application/json" --data @foo.json https://jira-test.ch.*******.net/rest/api/latest/issue/
这是foo.json有效载荷:
{
"fields": {
"project":
{
"key": "FOO"
},
"summary": "Test the REST API",
"issuetype": {
"name": "Task"
}
}
}
我试图实现
HttpWebRequest
调用其余的API,我还尝试使用
WebClient
. 他们都没用。我有点了解API,但我认为我没有正确的参数,我认为我在那里做了一些错误的事情。在谷歌上,我也没有找到任何解决方案。
在执行下面的函数时,我从JIRA得到一个内部错误。(没有关于错误的具体信息)
public static void CreateJiraRequest(JiraApiObject jiraApiObject)
{
string url = "https://jira-test.ch.*******.net/rest/api/latest/issue/";
string user = "peno.ch";
string password = "****";
var client = new WebClient();
string data = JsonConvert.SerializeObject(jiraApiObject);
client.Credentials = new System.Net.NetworkCredential(user, password);
client.UploadStringTaskAsync(url, data);
}
这是我的JiraapiObject,它精确地转换为上面所示的JSON有效负载。
public class JiraApiObject
{
public class Project
{
public string key { get; set; }
}
public class Issuetype
{
public string name { get; set; }
}
public class Fields
{
public Project project { get; set; }
public Issuetype issuetype { get; set; }
public string summary { get; set; }
}
public class RootObject
{
public Fields fields { get; set; }
}
}
当我在控制台上执行curl命令时,一切正常,我就是不知道如何构造
网络客户端
或
HTTPWebRebug
.
我发现很多JIRA用户都面临着这个问题,我在互联网上找不到一个好的解决方案。我希望通过提出这个问题来找到解决办法并帮助其他有同样问题的人。