【问题标题】:HTTP PATCH Method C#HTTP PATCH 方法 C#
【发布时间】:2017-11-09 05:57:05
【问题描述】:

我没有看到包含 HTTP“PATCH”请求的选项,我没有使用 Visual Studio Intellisense 的选项?如何在此代码中包含“PATCH”方法而不是“POST”

using (HttpClient httpClient = new HttpClient())
{
    Uri requesturi = new Uri(string.Format("{0}/api/data/v8.2/", url));
    httpClient.BaseAddress = requesturi;
    httpClient.Timeout = new TimeSpan(0, 0, 4);  // 10 minutes
    httpClient.DefaultRequestHeaders.Accept.Clear();
    httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
    result = GetS2SAccessToken(url, pwd);
    httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result);
    httpClient.DefaultRequestHeaders.Add("OData-MaxVersion", "4.0");
    httpClient.DefaultRequestHeaders.Add("OData-Version", "4.0");
    HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "");                   
    request.Content = new StringContent(props.ToString(), Encoding.UTF8, "application/json");
}

【问题讨论】:

标签: c# httpclient http-patch


【解决方案1】:

我在 StackOverflow 上找到了这篇文章:click

他用下面的代码例子做到了:

public async Task<HttpResponseMessage> PatchAsync(HttpClient client, Uri requestUri, IHttpContent iContent) {
    var method = new HttpMethod("PATCH");

    var request = new HttpRequestMessage(method, requestUri) {
        Content = iContent
    };

    HttpResponseMessage response = new HttpResponseMessage();
    // In case you want to set a timeout
    //CancellationToken cancellationToken = new CancellationTokenSource(60).Token;

    try {
         response = await client.SendRequestAsync(request);
         // If you want to use the timeout you set
         //response = await client.SendRequestAsync(request).AsTask(cancellationToken);
    } catch(TaskCanceledException e) {
        Debug.WriteLine("ERROR: " + e.ToString());
    }

    return response;
}

【讨论】:

  • 但请记住,这是一个异步任务方法,因此如果不符合您的需求,您可以查看链接线程的其他答案...
  • @RaviShastri np 欢迎您,请将我的帖子标记为答案,以便其他人可以看到:)
  • @RaviShastri,如果您对此还有任何疑问,我在这里
猜你喜欢
  • 2017-06-20
  • 2014-09-29
  • 2015-01-05
  • 1970-01-01
  • 1970-01-01
  • 2016-05-24
  • 1970-01-01
  • 2013-07-20
  • 1970-01-01
相关资源
最近更新 更多