0

我正在使用 REST API 使用 REST API文档创建工作项。为此,我需要使用 Patch 请求,但此代码不起作用。程序以代码 0 (0x0) 退出。

            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);
4

1 回答 1

1

0 (0x0)这只是调试消息。您可以通过右键单击输出窗口并取消选中线程结束消息来关闭它。

使用 uriBuilder 构建 uri 必须工作

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());
       }
于 2016-06-22T05:47:40.427 回答