2016-07-14 3 views
1

API를 사용하여 데이터를 가져 오는 방법에 금이 갔지만 이제는 새 작업 항목을 프로젝트에 적용하려고 노력하고 있습니다. 내 C# : 디버거에서와 같이 여기Visual Studio Team Services API를 사용하는 방법

try { 
     using (HttpClient client = new HttpClient()) { 
     client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
     client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(
      ASCIIEncoding.ASCII.GetBytes(
       string.Format("{0}:{1}", "", token)))); 

     string Url = $"https://XXX/DefaultCollection/{Job.Project}/_apis/wit/workitems/$Task?api-version=1.0"; 
     var method = new HttpMethod("PATCH"); 
     var request = new HttpRequestMessage(method, Url) { 
       Content = new StringContent(Job.WorkItem, Encoding.UTF8, 
          "application/json-patch+json") 
        }; 

     using (HttpResponseMessage response = client.SendAsync(request).Result) { 
         response.EnsureSuccessStatusCode(); 
         string responseBody = response.Content.ReadAsStringAsync().Result;       
        } 
       } 
      } 
      catch (Exception ex) { 
       MessageBox.Show(ex.ToString()); 
       return null; 
      } 

"[ 
    { 
     \"op\":\"add\", 
     \"path\":\"/fields/System.Title\", 
     \"value\":\"Please add a business area for XXX Systems\\n\" 
    } 
]" 

그것이

{StatusCode: 400, ReasonPhrase: 'Bad Request', Version: 1.1, Content: System.Net.Http.StreamContent, Headers: 
{ 
    Pragma: no-cache 
    X-TFS-ProcessId: xxx 
    Strict-Transport-Security: max-age=31536000; includeSubDomains 
    Access-Control-Allow-Origin: * 
    Access-Control-Max-Age: 3600 
    Access-Control-Allow-Methods: OPTIONS,GET,POST,PATCH,PUT,DELETE 
    Access-Control-Expose-Headers: ActivityId,X-TFS-Session,X-MS-ContinuationToken 
    Access-Control-Allow-Headers: authorization 
    X-FRAME-OPTIONS: SAMEORIGIN 
    X-VSS-UserData: xxxx 
    ActivityId: xxxx 
    X-TFS-Session: xxx 
    X-Content-Type-Options: nosniff 
    Cache-Control: no-cache 
    Date: Wed, 13 Jul 2016 16:48:28 GMT 
    P3P: CP="CAO DSP COR ADMa DEV CONo TELo CUR PSA PSD TAI IVDo OUR SAMi BUS DEM NAV STA UNI COM INT PHY ONL FIN PUR LOC CNT" 
    Server: Microsoft-IIS/8.5 
    X-AspNet-Version: 4.0.30319 
    X-Powered-By: ASP.NET 
    Content-Length: 429 
    Content-Type: application/json; charset=utf-8 
    Expires: -1 
}} 
012,351,641 응답으로 뭔가 또는 뭔가 잘못하고를 놓친 Job.WorkItem입니다

xxx로 일부 내용을 생략했습니다.

답변

1

특정 작업에 대해서는 REST Api documentation을 참조하십시오.

또한 .net에서 VSO Api를 사용하는 경우 client lib을 호출하는 것이 더 간단할까요?

+0

클라이언트 lib에 병이 들었습니다. API 문서를 사용하고 있었고 모든 것이 올바르게 수행되었다고 생각했습니다. –

0

잘못된 요청의 원인이 될 Job.WorkItem에 큰 따옴표가 중복되어 있습니다. 내용은 다음과 같아야합니다.

[ 
    { 
     \"op\":\"add\", 
     \"path\":\"/fields/System.Title\", 
     \"value\":\"Please add a business area for XXX Systems\\n\" 
    } 
] 

자세한 내용은이 링크를 참조하십시오. Create a work item.

관련 문제