Правильный способ сделать запрос PATCH

Я использую ASP.Net Core 2. Мне нужно обновить пользователя в Azure AD с помощью Microsoft Graph API. В документации API указано, что я должен отправить свойства пользователя в теле и указать пользователя в URL-адресе следующим образом:

https://graph.windows.net/myorganization/users/{user_id}?api -версия

В документации указано, что это должен быть запрос PATCH. Но HTTPRequestMessage не принимает PATCH как HttpMethod. Как правильно сделать запрос PATCH с ядром asp.net 2?

Когда я гуглю, я обнаруживаю, что все ответы предлагают использовать JsonPatch, но это формат, который не поддерживается API Microsoft Graph.

Это то, что у меня есть до сих пор....

        var client = new HttpClient();
        var requestUri = $"{_azureAdOptions.GraphInstance}/{_azureAdOptions.GraphVersion}/{_azureAdOptions.Domain}/users/me";

        var request = new HttpRequestMessage(HttpMethod., requestUri);

        var accessToken = await _authenticationHelper.GetAccessTokenAsync();
        request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
        var response = await client.SendAsync(request);
        var responseString = await response.Content.ReadAsStringAsync();

person Daarwin    schedule 17.04.2018    source источник


Ответы (1)


Учитывая природу Http и сумасшествие разработчиков, вы можете создать свой собственный http-сервер с помощью пользовательских методов. Класс HttpMethod был создан с учетом этого, что позволяет указать метод в виде строки:

var method = new HttpMethod("PATCH"); // Patch
var request = new HttpRequestMessage(method , requestUri); // Use patch

Примечание. Новая версия HttpClient по умолчанию имеет метод Patch.

person Fals    schedule 17.04.2018
comment
Прекрасный! Теперь этот разработчик собирается сойти с ума! - person Daarwin; 17.04.2018