【问题标题】:Proper way to do a PATCH request执行 PATCH 请求的正确方法
【发布时间】:2018-04-17 13:29:59
【问题描述】:

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

https://graph.windows.net/myorganization/users/{user_id}?api-version

文档声明它应该是一个 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();

【问题讨论】:

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


    【解决方案1】:

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

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

    注意:新版HttpClient默认自带Patch方法。

    【讨论】:

    • 可爱!现在这个开发者快要疯了!
    猜你喜欢
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    相关资源
    最近更新 更多