Следующее относится к приложению .NET Core со следующими зависимостями...
Microsoft.NETCore.App
Microsoft.AspNet.WepApi.Client (5.2.7)
На Microsoft.com есть документ Call a Web API From a .NET Client (C#)
от ноября 2017 года.
В документе есть вызов HTTP GET на стороне клиента.
static HttpClient client = new HttpClient();
static async Task<Product> GetProductAsync(string path)
{
Product product = null;
HttpResponseMessage response = await client.GetAsync(path);
if (response.IsSuccessStatusCode)
{
product = await response.Content.ReadAsAsync<Product>();
}
return product;
}
Значение response.Content
относится к объекту HttpContent
. По состоянию на июль 2020 г. у HttpContent
нет метода экземпляра с сигнатурой ReadAsAsync<T>()
, по крайней мере, согласно следующему документу. Однако этот метод экземпляра работает.
Ссылка на ссылку, где нет метода экземпляра с сигнатурой ReadAsAsync<T>()
... https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpcontent?view=netcore-3.1
Существует статический метод HttpContentExtensions.ReadAsAsync<T>(myContent)
, где myContent
относится к объекту HttpContent
. Этот статический метод также работает.
Ссылка на ссылку... https://docs.microsoft.com/en-us/previous-versions/aspnet/hh834253(v=vs.118)
Например, одна задокументированная подпись имеет...
статический значок, за которым следует
ReadAsAsync<T>(HttpContent)
и описание, в котором говорится, что он вернет Task<T>
. Этот статический метод, вероятно, является закулисной реализацией метода экземпляра.
Однако в верхней части веб-страницы статического метода есть информация, указывающая... Мы больше не обновляем этот контент регулярно. Ознакомьтесь с жизненным циклом продукта Microsoft, чтобы узнать, как поддерживается этот продукт, услуга, технология или API.
Были ли заменены HttpContent.ReadAsAsync<T>()
обеих форм, экземпляра и статики, в .NET Core 3.1?
GetFromJsonAsync<>()
. 27.07.2020.GetByteArrayAsync()
,.GetStreamAsync()
,.GetStringAsync()
. Они не сравнимы сHttpContent.ReadAsAsync<T>()
, потому что они не безопасны для типов и очень неудобны, если полезная нагрузка представляет собой дерево объектов. Если у вас есть безопасный метод HttpClient, сообщите мне об этом. 27.10.2020