top of page

LLAMAR UN WEB API MVC C# USANDO HttpClient

Código simple como ejemplo para llamar un API 

 

using MVCCourseLinkedIN.Models;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Mvc;
using System.Web.Script.Serialization;

namespace MVCCourseLinkedIN.Controllers
{
    public class HomeController : Controller
    {

 public async System.Threading.Tasks.Task<ActionResult> MemesAsync()
        {
           
            string uri = @"https://api.imgflip.com/get_memes";
                      
                using (var client = new HttpClient())
                {

                    var response = await client.GetAsync(uri).Result;
                    var dat = response.Content.ReadAsStringAsync().Result;
                    var resulto = JsonConvert.DeserializeObject<Memes>(dat);
                
                    return View(resulto);
                }

        }

    }

 

//Usando esta clase en la carpeta Models

    public class Memes
    {
        public bool string { get; set; }
        public Data string { get; set; }

    }
    public class Data
    {
        public Meme[] string { get; set; }
    }
    public class Meme
    {
        public string string { get; set; }
        public string string { get; set; }
        public string string { get; set; }
        public int string { get; set; }
        public int string { get; set; }
        public int string { get; set; }

    }


}
 

Del lado del view podemos tener algo como esto

@model MVCCourseLinkedIN.Models.Memes
@{
    ViewBag.Title = "Memes";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Memes</h2>

<div class="row">

    @foreach (var mem in Model.data.memes)
    {
        <div  class="col-md-3 pr-2">
            <div class="card" style="width: 18rem;">
                <img class="card-img-top" src="@mem.url" width="120 px" alt="Card image cap">
                <div class="card-body">
                    <h5 class="card-title">@mem.name</h5>
                    <p class="card-text">id: @mem.id</p>
                    <a href="@mem.url" target="_blank" class="btn btn-primary">Go somewhere</a>
                </div>
            </div>
        </div>

    }
</div>

 

bottom of page