发送 JSON-LD 时不支持的媒体类型格式化程序

Unsupported media type formatter when sending JSON-LD

我正在使用 C# 中的 HttpClient 将 JSON LD 数据发送到 Webapi 端点。 我得到错误不支持的媒体类型格式化程序。 我发送的数据是 JSONLD 作为字符串:

string data = @"{
                      ""@type"": ""vcx:blah"",
                      ""vcx:key"": ""blah"",
                      ""vcx:value"": ""blah""
                 } ";
httpClient.PostAsync(uri, new StringContent(data));

在 api 一侧,是网络 api。在 Global.asax.cs 我有以下内容:

GlobalConfiguration.Configuration.Formatters.Clear();
GlobalConfiguration.Configuration.Formatters.Add(new 
JsonMediaTypeFormatter());

即使我删除了格式化程序的清除,我在调用应用程序上也会遇到同样的错误。

有人知道解决办法吗?

参见 docs

您正在使用 StringContent 的第一个构造函数,这意味着 StringContent 创建的媒体类型默认为 text/plain

如果您需要 jsono,请指定媒体类型:

httpClient.PostAsync(uri, new StringContent(data, Encoding.UTF8, "application/json"));