Метод HTTP PATCH C#

Не виждам опцията за включване на 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");
}

person Ravi Shastri    schedule 07.06.2017    source източник
comment
Какво е възможно с HttpRequestMessage.Method е достъпно от неговия документация. Не виждам .Patch в списъка.   -  person Ken White    schedule 07.06.2017
comment
Възможен дубликат на PATCH Async заявки с Windows.Web.Http.HttpClient клас   -  person Anas Alweish    schedule 28.11.2018


Отговори (1)


Намерих тази публикация тук в StackOverflow: щракване

Той го направи със следния примерен код:

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;
}
person Dennis Larisch    schedule 07.06.2017
comment
Но имайте предвид, че това е метод на асинхронна задача, така че можете да разгледате другите отговори на свързаната нишка, ако не отговаря на вашите нужди... - person Dennis Larisch; 07.06.2017
comment
@RaviShastri np добре дошли, моля, маркирайте публикацията ми като отговор, за да могат други хора да я видят :) - person Dennis Larisch; 07.06.2017
comment
@RaviShastri и ако имате допълнителни въпроси относно това, аз съм тук - person Dennis Larisch; 07.06.2017