如何更改 Flul 中的 Content-Type?

Cha*_*son 4 c# content-type flurl asp.net-core asp.net-core-webapi

我有一个 .NET Core 2.0 WebApi 应用程序,其中我已将“Flurl.Http”(版本 2.1.0)NuGet 包添加到我的项目中。

我正在尝试使用 Flurl 对 Visual Studio Team Services (VSTS) Api 端点之一进行简单的 REST API 调用。

但是,我调用的特定 VSTS api 端点要求将 Content-Type 设置为“application/json-patch+json”,而不是典型的“application/json”。

在我的 Flurl 调用中,我使用“WithHeader()”方法尝试在请求标头中设置 Content-Type,但它不起作用。Flurl 似乎不允许我覆盖 PostJsonAsync 方法中内置的默认或标准 Content-Type。

有谁知道如何使用 Flurl 更改请求的 Content-Type?或者如何正确覆盖 Flul 配置中 Content-Type 的默认行为?

提前致谢!

我的代码:

public bool CreateNewBug(NewBugRequest newBugRequest)
{
    return _apiUrlToCreateNewBug.WithHeader("Authorization", "Basic Base64PersonalAccessTokenGoesHere")
                                .WithHeader("Content-Type", "application/json-patch+json")
                                .PostJsonAsync(newBugRequest.Fields)
                                .Result
                                .IsSuccessStatusCode;
}
Run Code Online (Sandbox Code Playgroud)

(此代码有效,但 VSTS api 的响应是 Content-Type 不允许,需要更改为“application/json-patch+json”,这就是我尝试在标头中设置的内容。 )

Tod*_*ier 5

新答案:升级到最新的 Flul.Http。该问题已在 2.3.1 中得到解决,因此问题中发布的代码(最干净的方法)现在实际上应该按预期工作。