Como enviar un objeto con imagen por POST hacia un WebAPI en formato JSON

Sabemos que Json está revolucionando la programación hoy en día. XML ya empieza a irse desplazando de un tiempo para acá, mucho auge de tecnologías basadas en motores de JavaScript pero bueee la tecnología es así….

Este código es bien sencillo, por lo tanto en este artículo solo voy a hacer énfasis en ese fragmento de código, por lo que no voy a explicar otras cosas alrededor, la idea es poder tener la lógica en nuestras apps y que puedas incorporar esta funcionalidad tan vital para aplicaciones que interactúan mucho con imágenes o alguna captura de multimedios.

Previo a realizar esta subida de data hacia un servidor se debe de tener una WebApi, las WebAPIs son lo más sencillo y dinámico para exponer información, ya sea de un repositorio de data, así como la misma establece una capa de datos muy dinámica y portable por ser multiplataforma.

Ya teniendo tu propia WebAPI arriba en algún servidor (Azure, IIS, etc), se debe de crear una aplicación cliente que consumirá información y podrá hacer peticiones, sencillamente estamos trabajando en C#, ya sea un app Winform, WPF, Xamarin, UWP . También necesitamos la librería Json.Net que la puedes conseguir en Nuget

Volviendo al código tenemos:

public void UploadData(byte[] imagen) //recibimos la imagen como parametro en el metodo
{
  using (var client = new HttpClient())
  {
    var objetoClase1 = new ObjetoClase()
    {
      ID = Guid.NewGuid(),
      MediaStream = imagen, //esta es la imagen representada en Byte[]
      Description = "dummy";
    };
//La magia esta aqui
    var response = await client.PostAsync(new Uri("URL del WebAPI"), new HttpStringContent(JsonConvert.SerializeObject(objetoClase1), UnicodeEncoding.Utf8, "application/json"));

    if (response.IsSuccessStatusCode)
    {
    //Al entrar aqui es porque el POST hacia el webAPI fue exitoso (Codigo 200:OK)
    }
}
}

Espero les sea de utilidad.
Enjoy….

Publicado por

hughfernandez

Azure lover, .NET zombie, devOps enginner, sysAdmin curious, iot entusiasm, XAML husband, ASP.NET ninja, AI fan, gamer by conviction!!...

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s