Pop

60.Servicios Web.API REST. MVC .Consumiendo Método Delete- Visual Studio 2017

60-.Servicios Web.API REST. MVC- Consumiendo Método Delete

 - En este capítulo del curso de programación en c# con visual studio 2017,vamos a finalizar con  los ejemplos de  servicios web. En esta entrada vamos a consumir desde un cliente el método Delete que implementamos en la entrada anterior.En nuestro caso nos permite eliminar un usuario de nuestra base de datos en el caso que no tenga pedidos asociados.

-  En esta ocasión llamamos al método que nos permite eliminar 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 un video con el ejemplo:






- Por si en la entrada anterior no lo chequeastéis os vuelvo a dejar información adicional sobre el formato JSON en este enlace:


- Os dejo también el código del ejemplo visto en el video:

  • Página aspx con los cuatro botones que consultan,insertan,modifican y borran datos:
<%@ 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" />
            <asp:Button ID="btnBorrarUsuario" runat="server" Text="Borrar Usuario" OnClick="btnBorrarUsuario_Click" />
            <br />
            <asp:Label runat="server" ID="lblResultado"></asp:Label>

        </div>
    </form>
</body>
</html>

  • Código de la parte de servidor desde la que lanzamos todas las peticiones vistas en estas entradas de las API REST:
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace GestionVarios
{
    public partial class APIREST : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnListaUsuarios_Click(object sender, EventArgs e)
        {
            HttpWebResponse res = null;
            StreamReader SReader = null;
            String ResultadoCadena;
            string ruta = "http://localhost:57963/API/PEDIDOS/";
            try
            {
                HttpWebRequest WReq = (HttpWebRequest)HttpWebRequest.Create(ruta);
                WReq.ContentType = "application/json; charset=UTF-8";
                WReq.Method = "GET";
                res = (HttpWebResponse)WReq.GetResponse();
                Encoding Codificacion = ASCIIEncoding.UTF8;
                SReader = new StreamReader(res.GetResponseStream(), Codificacion);

                ResultadoCadena = SReader.ReadToEnd();
                lblResultado.Text = ResultadoCadena;
            }
            catch (WebException Exc)
            {
                var webResponse = (HttpWebResponse)Exc.Response;
                StreamReader Lector = new StreamReader(webResponse.GetResponseStream());
                string error = Lector.ReadToEnd();

            }
            finally
            {
                if (SReader != null)
                    SReader.Dispose();
                if (res != null)
                    res.Close();
            }
        }

        protected void btnAltaUSuario_Click(object sender, EventArgs e)
        {
                string ResultadoCadena = String.Empty;

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

            JsonSerializerSettings ConfigJson = new JsonSerializerSettings(); //Evitar que se serialicen los nodos cuyo valor sea nulo (Los ignora).
            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 = "POST";
                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;
        }

        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;
        }

        protected void btnBorrarUsuario_Click(object sender, EventArgs e)
        {
            string ResultadoCadena = String.Empty;
            try
            {
                Usuario u = new Usuario();
                u.Email = "mail6@mimail.es";


                JsonSerializerSettings ConfigJson = new JsonSerializerSettings(); //Evitar que se serialicen los nodos cuyo valor sea nulo (Los ignora).
                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 = "DELETE";
                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;
            }
            catch (Exception ex)
            {
                lblResultado.Text = ex.Message;
            }
        }
    }

 
}

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...