Golang: validar parámetros GET en URL con servidor HTTP

En este post vamos a ver cómo validar y obtener los parámetros GET pasados en la URL cuando estamos leyendo la petición de un servidor HTTP.

Recuerda que con net/http podemos obtener el mapa de parámetros con http.Request.URL.Query, luego cuando accedemos a una clave nos devolverá un arreglo con todos los valores para esa clave GET y finalmente si solo queremos el primero accederemos a la posición 0 de ese arreglo.

Yo te enseñaré cómo pasar de esta validación:

A esta más limpia:

De este modo podremos validar que el parámetro GET se encuentre presente en la petición HTTP además de que no esté vacío, y no importará la cantidad, siempre tendremos las mismas líneas.

Nota: seguramente habrá frameworks o librerías que ya hacen el trabajo. Yo lo haré usando solo la librería estándar y el paquete net/http de Golang.

(más…)

Leyendo código de barras para enviarlo a otro sitio usando algo como una API

Leer código de barras con cámara y enviarlo a página web

En este post te mostraré cómo leer un código de barras con una cámara usando JS (desde un teléfono, tableta o computadora con cámara web) y además enviarlo a una página web.

Esto nos va a permitir:

  • Usar la webapp expuesta aquí como una API, sin que tu sitio necesite HTTPS
  • Saltar la seguridad del acceso a la cámara solo en HTTPS, pues puedes leer el código de barras con la cámara y luego enviarlo a tu verdadero sitio web

Al final esta aplicación web será como una API gratuita para leer un código de barras y enviarlo a tu sitio web. Veamos los detalles a continuación.

(más…)

Descargar archivo por URL usando Go Golang

Go – Descargar archivo de internet

En este post de programación en Go / Golang te enseñaré cómo descargar un archivo de internet y guardarlo en el dispositivo desde donde se invocó al ejecutable.

Descargar archivo por URL usando Go Golang

Descargar archivo por URL usando Go Golang

Es decir, usar Go para descargar cualquier archivo de internet, ya sea una imagen, un PDF, etcétera y guardarlo en la computadora.

(más…)

Hacer petición HTTP con ESP8266

En este post sobre la tarjeta NodeMCU ESP8266 te mostraré cómo hacer una petición HTTP a un servidor web. Esto servirá para, por ejemplo, enviar datos de un sensor a un servidor web propio.

En este ejemplo te voy a mostrar cómo enviar datos desde una ESP8266 a un servidor Apache con PHP, pues es de las pilas de desarrollo más usadas, pero recuerda que podrías hacer esto con cualquier lenguaje por ejemplo usando Python y Flask o Go, etcétera.

Veamos entonces cómo comunicar la tarjeta con nuestro servidor, pues la misma ya tiene conexión WiFi así que podemos conectarla fácilmente.  Vamos a hacer que nuestra ESP8266 sea un cliente HTTP, pues anteriormente ya vimos cómo hacer que sea un servidor.

(más…)

Variables GET en Flask

En este corto post sobre Python y Flask te mostraré cómo acceder a una variable o parámetro GET de la URL, usando request de Flask.

Parámetro GET con Flask y Python

Por ejemplo, en la siguiente URL:

http://localhost:8000/?nombre=Luis

Acceder a la variable GET nombre, cuyo valor es Luis, usando Flask.

(más…)

HashMap en Java - Tutorial

HashMap en Java – Tutorial con ejemplos

En este post te mostraré algunas operaciones básicas para el manejo de HashMap en Java; por ejemplo, veremos cómo agregar elementos, eliminar elementos, recorrer el hasmap, saber si tiene determinado elemento y obtener un elemento.

Para recorrer el hashmap vamos a usar un foreach; y para las otras operaciones usaremos los métodos remove,  containsKey, containsValue, put y get.

(más…)

Cargar JSON desde PHP usando jQuery y AJAX

AJAX, PHP y jQuery: carga de datos

AJAX, PHP y jQuery si bien no están ligados, se relacionan para crear aplicaciones web dinámicas usando tecnologías libres.

En este post te mostraré cómo usar la librería jQuery para traer datos HTML y JSON desde PHP, todo eso sin refrescar la página.

Para ello haremos una petición HTTP GET usando el método $.get de jQuery; de este modo vamos a poder usar la técnica de AJAX usando jQuery y PHP.

(más…)

Fetch API en JavaScript: peticiones HTTP con promesas

JavaScript es un lenguaje que evoluciona en todos los sentidos.

Hace tiempo se utilizaba XMLHttpRequest para hacer peticiones AJAX en JavaScript del lado del cliente. Tiempo después aparecieron librerías como jQuery que traían una función para hacer más fáciles las peticiones, con $.ajax.

Más tarde salieron librerías como axios, o algunas otras que vienen incorporadas en frameworks.

Recientemente (bueno, hace ya algunos años, pero es más nueva que XMLHttpRequest) ha aparecido la función global fetch en JavaScript que trabaja con promesas y permite hacer peticiones HTTP de todo tipo de una manera fácil y rápida.

En este post voy a mostrar una guía de cómo trabajar con fetch en JavaScript para hacer peticiones GET, POST (con datos en el cuerpo), PUT y DELETE, además de solicitar HTML o JSON.

También veremos cómo enviar un formulario con fetch. Recuerda que ya vimos cómo subir un archivo usando fetch.

(más…)

Petición POST, GET, PUT y DELETE en Go con net/http

Golang es un lenguaje utilizado del lado del servidor debido a su simplicidad de uso, potencia y velocidad.

Sin embargo, con Go también se pueden hacer peticiones HTTP. Es decir, Go también puede funcionar como cliente HTTP, no solo como servidor.

Como sabemos, hay 4 métodos básicos para las peticiones HTTP: POST para enviar datos, GET para obtener, PUT para actualizar y DELETE para eliminar.

Peticiones HTTP con Go y net http

En este post veremos ejemplos de cómo hacer estas 4 peticiones con Go usando el paquete net/http para lograr hacer una petición GET, POST, PUT y DELETE usando Golang.

También vamos a ver cómo escribir y enviar encabezados o el código de respuesta (200 para OK, 500 de error, 405 de no permito, etcétera)

El sitio web que vamos a usar para probar será httpbin.org, el cual sirve como espejo para probar que realmente estamos haciendo las peticiones y enviando datos.

(más…)

Comprobar si diccionario tiene clave en Python

Comprobar si diccionario tiene determinada clave en Python

Los diccionarios en Python son útiles en muchas circunstancias. Por ejemplo, para eso de los args y kwargs, así como para usarlos como estructura de datos en donde se accede en un tiempo óptimo gracias a que podemos usar sus claves como índices para acceder a los mismos.

Comprobar si diccionario tiene clave en Python

Comprobar si diccionario tiene clave en Python

Hoy veremos algo muy simple en Python: comprobar si un diccionario tiene una clave, es decir, si tiene un dato en determinada clave o si cuenta con ella.

(más…)

Servir fuera de la carpeta raíz

Servidor web completo en Go

Vamos a ver cómo crear un servidor web en el lenguaje de programación Go, también conocido como Golang. Lo que haremos será crear un servidor simple que responderá a peticiones GET, es decir, a las direcciones URL y que servirá archivos.

Explicado de otra manera, nuestro server hará esto:

  • Responder a peticiones dependiendo de la URL
  • Leer parámetros que pasamos por la URL
  • Servir un directorio y archivos, por ejemplo HTML, imágenes, vídeos, etcétera; algo así como lo hace el buen Apache o el servidor en Python.

No necesitaremos librerías extras ni frameworks, pues el maravilloso lenguaje provee todo lo que necesitamos.

Por cierto, si no lo tienes, mira cómo instalar Go en Windows.

Este tutorial es completo, explicaré a detalle cada cosa, te aseguro que aunque es un poco largo te enseñará lo robusto que es el lenguaje Go en cuanto a la web.

¿Interesado en algo más robusto? conoce mux.

(más…)

Codificar y decodificar URI en Android

Introducción A veces, en las peticiones HTTP de tipo GET necesitamos mandar valores en la URL. Dichos valores deben codificarse primero. En PHP tenemos la función urlencode, en Javascript tenemos a encodeURIComponent, y hoy veremos cómo codificar una URI en Android. ¿Qué es codificar una URI? Es quitar todos aquellos Leer más…