Pop

58.Servicios Web.API REST. MVC .Consumiendo Método Put - Visual Studio 2017

58-.Servicios Web.API REST. MVC- Consumiendo Método Put

- En este capítulo del curso de programación en c# con visual studio 2017,vamos a continuar con  los servicios web. En esta entrada vamos a consumir desde un cliente el método put que implementamos en la entrada anterior.En nuestro caso nos permite modificar los datos de algún cliente que tengamos guardado en nuestra base de datos.

-  En esta ocasión llamamos al método que nos permite modificar los datos de un cliente mediante una llamada del tipo http://localhost:57963/API/Usuario.  Además de la ruta de la url a la que hacemos la petición debemos agregar a la petición el tipo de datos que espera nuestro método. Esto lo hacemos facilmente serializando y deserializando los objetos utilizando el formato JSON.

- Os dejo información adicional sobre el formato JSON en este enlace:


- En el video podéis ver un ejemplo sobre como hacer un petición de este tipo a un API/REST:


- Os dejo el código de la petición desde nuestro cliente de pruebas:

  • Código del fichero aspx donde hemos creado el botón que desencadena la petición:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="APIREST.aspx.cs" Inherits="GestionVarios.APIREST" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>

            <asp:Button ID="btnListaUsuarios" runat="server" Text="Lista pedidos" OnClick="btnListaUsuarios_Click" />
            <asp:Button ID="btnAltaUSuario" runat="server" Text="Nuevo usuario" OnClick="btnAltaUSuario_Click" />
             <asp:Button ID="btnModificarUsuario" runat="server" Text="Modificar usuario" OnClick="btnModificarUsuario_Click" />
            <br />
            <asp:Label runat="server" ID="lblResultado"></asp:Label>
        </div>
    </form>
</body>
</html>

  • Código del fichero cs desde dondel lanzamos la petición:
        protected void btnModificarUsuario_Click(object sender, EventArgs e)
        {
            string ResultadoCadena = String.Empty;

            Usuario u = new Usuario();
            u.Nombre = "Bart Simpson 13";
            u.Email = "BartSimpson@email.com";
            u.CodPais = "ARG";
            u.Pass = cifrar("BART13");

            JsonSerializerSettings ConfigJson = new JsonSerializerSettings();
            ConfigJson.NullValueHandling = NullValueHandling.Ignore;
            byte[] Datos = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(u, Formatting.None, ConfigJson));

            HttpWebRequest WReq = (HttpWebRequest)HttpWebRequest.Create("http://localhost:57963/API/Usuario");
            WReq.ContentType = "application/json; charset=UTF-8";
            WReq.ContentLength = Datos.Length;
            WReq.Method = "PUT";
            WReq.GetRequestStream().Write(Datos, 0, Datos.Length);

            HttpWebResponse res = (HttpWebResponse)WReq.GetResponse();
            Encoding Codificacion = ASCIIEncoding.UTF8;

            StreamReader SReader = new StreamReader(res.GetResponseStream(), Codificacion);
            ResultadoCadena = SReader.ReadToEnd();

            lblResultado.Text = ResultadoCadena;
        }

        private byte[] cifrar(string cadenaAcifrar)
        {
            String miclave = ConfigurationManager.AppSettings["clave"];
            byte[] claveCifrado = System.Text.Encoding.ASCII.GetBytes(miclave);
            Cifrado c = new Cifrado(claveCifrado);
            byte[] b = c.cifrar(cadenaAcifrar);
            return b;
        }

  • Clase del objeto que serializamos como parámetro:
public class Usuario
{
    string nombre = String.Empty;
    string email = String.Empty;
    byte[] pass = null;
    string codPais = String.Empty;

    public string Nombre { get => nombre; set => nombre = value; }
    public string Email { get => email; set => email = value; }
    public byte[] Pass { get => pass; set => pass = value; }
    public string CodPais { get => codPais; set => codPais = value; }
}

No hay comentarios:

Publicar un comentario

Curso .NET Core en C# - 34.Creamos nuestro propio log

34.Creamos nuestro propio log Hola a todos. En este curso, analizaremos todos los conceptos básicos, intermedios y avanzados de  ASP.NET...