¿Dónde está HttpContent.ReadAsAsync?
Veo en toneladas de ejemplos en la web que utilizan el nuevo HttpClient
objeto (como parte de la nueva API web) que debería haber HttpContent.ReadAsAsync<T>
un método. Sin embargo, MSDN no menciona este método ni IntelliSense lo encuentra.
¿A dónde fue y cómo puedo solucionarlo?
Parece que es un método de extensión (en System.Net.Http.Formatting):
Clase HttpContentExtensions
Actualizar:
PM> paquete de instalación Microsoft.AspNet.WebApi.Client
Según la página del paquete System.Net.Http.FormattingSystem.Net.Http.Formatting
NuGet, el paquete ahora es heredado y, en cambio, se puede encontrar en el Microsoft.AspNet.WebApi.Client
paquete disponible en NuGet aquí .
Tengo el mismo problema, así que simplemente obtengo una cadena JSON y la deserializa en mi clase:
HttpResponseMessage response = await client.GetAsync("Products");
//get data as Json string
string data = await response.Content.ReadAsStringAsync();
//use JavaScriptSerializer from System.Web.Script.Serialization
JavaScriptSerializer JSserializer = new JavaScriptSerializer();
//deserialize to your class
products = JSserializer.Deserialize<List<Product>>(data);
Si ya estás usando Newtonsoft.Json
y no quieres instalar Microsoft.AspNet.WebApi.Client
:
var myInstance = JsonConvert.DeserializeObject<MyClass>(
await response.Content.ReadAsStringAsync());
Actualización 2021: Parece que el método se eliminó en .NET5. Alternativamente, puedes usar ReadFromJsonAsync<>()
desde System.Net.Http.Json.HttpContentJsonExtensions
. Resuelve el propósito.