readasasync net c# .net asp.net-web-api httpcontent

net - readasasync c#



¿Dónde está HttpContent.ReadAsAsync? (5)

Después de haber golpeado este varias veces y seguido una serie de sugerencias, si no lo encuentra disponible después de instalar NuGet Microsoft.AspNet.WebApi.Client, agregue manualmente una referencia de la carpeta de paquetes en la solución a:

/Microsoft.AspNet.WebApi.Client.5.2.6/lib/net45/System.Net.Http.Formatting.dll

Y no entre en la trampa de agregar referencias antiguas a System.Net.Http.Formatting.dll NuGet

Veo en toneladas de ejemplos en la web usando el nuevo objeto HttpClient (como parte de la nueva API web) que debería haber un método HttpContent.ReadAsAsync<T> . Sin embargo, MSDN no menciona este método, ni IntelliSense lo encuentra.

¿A dónde fue, y cómo lo trabajo?


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

De acuerdo con la página del paquete System.Net.Http.Formatting NuGet, el paquete System.Net.Http.Formatting ahora es heredado y puede encontrarse en el paquete Microsoft.AspNet.WebApi.Client disponible en NuGet aquí .


Si ya está utilizando Newtonsoft.Json y no desea instalar Microsoft.AspNet.WebApi.Client :

var myInstance = JsonConvert.DeserializeObject<MyClass>( await response.Content.ReadAsStringAsync());


Simplemente haga clic derecho en su proyecto. Vaya a Gestionar NuGet. Busque paquetes para Microsoft.AspNet.WebApi.Client y tendrá acceso al método de extensión.


Tengo el mismo problema, así que simplemente obtengo una cadena JSON y deserializo a 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);