2016-06-22 6 views
0

Я использую REST API для создания рабочего элемента с использованием REST API documentation. Для этого мне нужно использовать запрос Patch, но этот код не работает. программа выходит с кодом 0 (0x0).REST API PATH Создать WorkItem не работает, код завершен с 0

  HttpClientHandler httpClientHandler = new HttpClientHandler(); 
      using (HttpClient client = new HttpClient(httpClientHandler)) 
      { 
       var content = "[{'op': 'add','path': '/fields/System.Title', 'value': 'Title' }]"; 
       client.DefaultRequestHeaders.Accept.Add(
          new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); 
       string URLTest = "https://MyProject.visualstudio.com/DefaultCollection/ProjectName/_apis/wit/workitems/$Task?api-version=2.0"; 
       client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", 
        Convert.ToBase64String(
         System.Text.ASCIIEncoding.ASCII.GetBytes(
          string.Format("{0}:{1}", "*******", "******")))); 
       var method = new HttpMethod("PATCH"); 
       var request = new HttpRequestMessage(method, URLTest) 
       { 
        Content = new StringContent(content, Encoding.UTF8, 
         "application/json-patch+json") 
       }; 

       HttpResponseMessage response = await client.SendAsync(request); 

ответ

0

0 (0x0) Это просто сообщение для отладки. Вы можете отключить это, щелкнув правой кнопкой мыши в окне вывода и снимите отметку с сообщения о завершении потока.

сборки с использованием URI uriBuilder должен работать

var uriBuilder = new UriBuilder(URLTest); 
uriBuilder.Scheme = "http"; 

var request = new HttpRequestMessage(method, uriBuilder.Uri) 
       { 
        Content = new StringContent(content, Encoding.UTF8, 
         "application/json-patch+json") 
       }; 

Измените метод asyc и найти сообщение об ошибке,

HttpResponseMessage response = client.Send(request); // Теперь вы получите сообщение об ошибке

еще использовать try catch блок

 try 
     { 
       HttpResponseMessage response = await client.SendAsync(request); 
     } 
     catch (TaskCanceledException e) 
     { 
      Debug.WriteLine("ERROR: " + e.ToString()); 
     } 
+0

Нет, это не работает :(Проблема возникает после того, как код первой строки останавливается, а return 0it не продвигается вперед. Я предполагаю, что в запросе есть некоторая проблема. HttpResponseMessage response = ожидание client.SendAsync (запрос); var Response = response.Content; –

+0

В HttpClient нет метода Send() :( –

+0

использовать try catch block и найти TaskCanceledException @SajalMittal –