将JIRA API cURL转换为c#http请求
我有一个cURL,我用它连接到Atlassian JIRA API并用JQL搜索问题,按项目名称和状态过滤问题 这是cURL命令,它工作得很好:将JIRA API cURL转换为c#http请求,c#,.net,rest,api,jira,C#,.net,Rest,Api,Jira,我有一个cURL,我用它连接到Atlassian JIRA API并用JQL搜索问题,按项目名称和状态过滤问题 这是cURL命令,它工作得很好: curl -u JIRAUSER:JIRATOKEN -X POST --data '{ "jql": "project = \"QA\" AND status=\"To Do\" " }' -H "Content-Type: application/json" https://jiraserver.atlassian.net/rest/api/2/s
curl -u JIRAUSER:JIRATOKEN -X POST --data '{ "jql": "project = \"QA\" AND status=\"To Do\" " }' -H "Content-Type: application/json" https://jiraserver.atlassian.net/rest/api/2/search
我正试图用httpclient-POST方法在c#上重新构建它。代码如下:
static async System.Threading.Tasks.Task Main(string[] args)
{
using (var httpClient = new HttpClient())
{
using (var request = new HttpRequestMessage(new HttpMethod("POST"), "https://jiraserver.atlassian.net/rest/api/2/search"))
{
var base64authorization = Convert.ToBase64String(Encoding.ASCII.GetBytes("JIRAUSER:JIRA TOKEN"));
request.Headers.TryAddWithoutValidation("Authorization", $"Basic {base64authorization}");
request.Content = new StringContent("{ \"jql\": \"project = \"QA\" AND status = \"To Do\" }");
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var response = await httpClient.SendAsync(request);
Console.WriteLine(response);
}
}
}
响应返回以下错误:
状态代码:400,原因短语:“”,版本:1.1,内容:
System.Net.Http.HttpConnectionResponseContent
在System.Diagnostics.Debug.Write中,我得到以下错误:
错误CS0428:无法将方法组“Write”转换为非委托类型
“对象”。您是否打算调用该方法
请给我一些提示,否则我就要上吊了…我建议使用JIRA SDK与您的JIRA实例进行交互-> 基本上,一组步骤是
1) initiate jira client:
var jiraClient = Jira.CreateRestClient(<jiraURL>, <jiraUserName>, <jiraUserPwd>);
2) connect to jira, and pull based on search criteria:
var jql = "project = QA + " AND status in (To Do)";
IEnumerable<Atlassian.Jira.Issue> jiraIssues = AsyncTasker.GetIssuesFromJQL(jiraClient, jql, 999);
3) then, you can enumerate in the pulled issues
...
foreach(var issue in jiraIssues)
{
/*
... for example, some of the available attributes are:
issue.Key.Value
issue.Summary
issue.Description
issue.Updated
String.Format("{0}/browse/{1}", jiraURL.TrimEnd('/') , issue.Key.Value)
...
*/
}
1)启动jira客户端:
var jiraClient=Jira.CreateRestClient(,);
2) 连接到jira,并根据搜索条件进行拉取:
var jql=“project=QA+”和状态为(待办事项)”;
IEnumerable jiraIssues=AsyncTasker.GetIssuesFromJQL(jiraClient,jql,999);
3) 然后,你可以列举在拉问题
...
foreach(JIRAISES中的var问题)
{
/*
…例如,某些可用属性包括:
问题、关键、价值
问题摘要
问题.说明
问题。更新
String.Format(“{0}/browse/{1}”、jiraURL.TrimEnd('/')、issue.Key.Value)
...
*/
}
- 另一方面,建议不要使用(…=newhttpclient()){…}