2017-05-12 7 views
0

을 사용하여 문제에 대한 조치를 실행하는 방법 일반적인 HttpWebRequest를 사용하여 제 3 자 어셈블리없이 API를 사용하여 문제 조치 실행을 구현하는 방법을 궁금합니다. 문제의 GET 필드 상태를 기본 인증의 예를 사용jira api 및 webrequest C#

+0

주 몇 가지 예제 코드 –

+2

까지이 질문에 투표 한 사람도 다운 투표를해야한다 : p –

답변

0

:

_jiraUrl = ConfigurationManager.AppSettings["jira.url"]; 

string login = ConfigurationManager.AppSettings["jira.login"]; 
string pass = ConfigurationManager.AppSettings["jira.password"]; 
var concat = Encoding.UTF8.GetBytes($"{login}:{pass}"); 

_authValue = Convert.ToBase64String(concat); 

using (var client = new WebClient()) 
{ 
    client.Headers.Add(HttpRequestHeader.ContentType, "application/json"); 
    client.Headers.Add(HttpRequestHeader.Authorization, $"Basic {_authValue}"); 

    try 
    { 
     string res = await client.DownloadStringTaskAsync($"{_jiraUrl}/rest/api/2/issue/{message.Task}?fields=status"); 

     var statusObj = JObject.Parse(res); 

     string status = statusObj["fields"]["status"].Value<string>("id"); 

     if (status == CLOSE_STATUS) 
      return ""; 
    } 
    catch (WebException ex) 
    { 
     using (var sr = new StreamReader(ex.Response.GetResponseStream())) 
      Console.WriteLine(sr.ReadToEnd()); 
    } 
} 

UPD : 추가 전환

using (var client = new WebClient()) 
{ 
    client.Headers.Add(HttpRequestHeader.ContentType, "application/json"); 
    client.Headers.Add(HttpRequestHeader.Authorization, $"Basic {_authValue}"); 

    try 
    { 
     await client.UploadDataTaskAsync($"{_jiraUrl}/rest/api/2/issue/{message.Task}/transitions?expand=transitions.fields", "POST", Encoding.UTF8.GetBytes("{\"transition\":{\"id\":\"" + CLOSE_TRANSITION + "\"}}")); 
    } 
    catch (WebException ex) 
    { 
     using (var sr = new StreamReader(ex.Response.GetResponseStream())) 
      Console.WriteLine(sr.ReadToEnd()); 
    } 
} 
+1

워크 플로우 작업 실행 방법은 무엇입니까? – Desaty

+0

+ Desaty가 답변에 추가되었습니다. –