¿como consumir un web api , desde MVC.asp.net?

publicado por: Anonymous

Tengo mi Web API en ASP.NET , necesito hacer un simple abml consumiendo los servicios desde el controlador de MVC. Me podrían ayudar?
El WEB API que tengo es el que te genera el scaffolding

solución

Para eso debes usar la clase HttpClient

Por ejemplo para hacer un GET

Nota: Ejemplo adaptado de: Calling a Web API From a .NET Client in ASP.NET Web API 2

public Task<Product> GetProduct(int id)
{
    using (var client = new HttpClient())
    {
        client.BaseAddress = new Uri("http://url-base-del-api");
        client.DefaultRequestHeaders.Accept.Clear();
        // Agrega el header Accept: application/json para recibir la data como json  
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        // Hace la llamada a http://url-base-del-api/api/products/<id>
        var response = await client.GetAsync("api/products/" + id);

        // Si el servicio responde correctamente
        if (response.IsSuccessStatusCode)
        {
            // Lee el response y lo deserializa como un Product
            return await response.Content.ReadAsAsync<Product>();
        }
        // Sino devuelve null
        return Task.FromResult<Product>(null);
    }
}
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *