正确的方法来执行PATCH请求

时间:2018-04-17 13:30:00

标签: rest asp.net-core microsoft-graph http-method

我正在使用ASP.Net Core 2.我需要使用Microsofts Graph API更新Azure AD中的用户。 API文档声明我应该在正文中发送用户的属性,并在URL中指定用户,如下所示:

  

https://graph.windows.net/myorganization/users/ {USER_ID}?API-版本

文档说明它应该是PATCH请求。但HTTPRequestMessage不接受PATCH作为HttpMethod。使用asp.net core 2发出PATCH请求的正确方法是什么?

当我谷歌时,我发现所有答案都建议使用JsonPatch,但这是Microsoft Graph API不支持的格式。

这是我到目前为止所拥有的......

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

1 个答案:

答案 0 :(得分:0)

鉴于Http的性质以及开发人员的疯狂,您可以使用自定义方法创建自己的http服务器。创建类HttpMethod时考虑到这一点,允许您将方法指定为字符串:

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

注意:默认情况下,新版HttpClient附带Patch方法。