Чтобы следовать из ответов выше, у меня есть небольшое дополнение, которое мне потребовалось, чтобы заставить его работать.
Раньше я использовал веб-приложение .NET Core 2.1 с использованием метода PostAsJsonAsync()
, и когда я обновился до .NET Core 3.1, он больше не работал.
Я не мог заставить приведенные выше ответы работать, и это оказалось потому, что текст, который должен был быть опубликован, должен был быть окружен кавычками, а любые кавычки в нем должны были быть экранированы. Я сделал следующий метод расширения, который решил мою проблему:
public static async Task<HttpResponseMessage> PostJsonAsync(this HttpClient client, string uri, string json)
{
//For some reason, not doing this will cause it to fail:
json = $"\"{json.Replace("\"", "\\\"")}\"";
return await client.PostAsync(uri, new StringContent(json, Encoding.UTF8, "application/json"));
}
Обратите внимание, что я использую System.Text.Json.JsonSerializer
, а не версию Newtonsoft.
person
Greg
schedule
02.03.2020
Microsoft.AspNetCore.*
. Изначально это расширение для приложений Windows 8 / 81. / 10 / UWP / WinRT, которые основаны наSystem.Runtime
, и .NET Core также основан на нем. - person Tseng   schedule 13.10.2016HttpClient
расширение. Совершенно не связано с ASP.NET или ASP.NET Core. Как видно, nuget.org/packages/Microsoft.AspNet.WebApi.Client здесь он не зависит ни от ASP.NET MVC5, ни от ASP.NET Core MVC. Однако он должен работать с .NET Core, поскольку это PCL, предназначенный для NET 4.5 и Win8 / 8.1. Вам просто нужен оператор"import": [ "portable-net45+win8" ]
в project.json - person Tseng   schedule 13.10.2016