Instalar libcurl para C y C++ (hacer peticiones HTTP)

Hacer petición HTTP con C y C++ es totalmente posible incluso siendo lenguajes de bajo nivel. Hacerlo sin librerías requeriría un esfuerzo enorme, pero afortunadamente existe cURL y la librería libcurl que podemos integrar en los proyectos de C para tener un cliente HTTP. Por ello es que en este post te enseñaré a instalar libcurl para ANSI C y C++ en Windows usando el entorno MSYS2. Igualmente aprenderás a compilar con libcurl e incluir el encabezado curl.h. ...

diciembre 15, 2023 · 2 min · 322 palabras · Parzibyte

Encabezados para usar OPFS en JavaScript (CORS 2)

El Origin Private File System (también llamado OPFS) permite tener un sistema de archivos completo directamente en el navegador web con el que podemos interactuar a través de JavaScript. Para que OPFS esté disponible necesitamos servir el contenido con 2 encabezados importantes: Cross-Origin-Opener-Policy: same-origin Cross-Origin-Embedder-Policy: require-corp No importa el lenguaje de programación ni el servidor usado para servir los archivos; el código JavaScript debe ser servido con un servidor que envíe esos headers. Si no lo hacemos de esa manera no vamos a poder acceder al OPFS. ...

octubre 6, 2023 · 1 min · 174 palabras · Parzibyte

Detener servidor http de Go desde el mismo servidor

El día de hoy te enseñaré a detener un servidor web creado con Go desde el propio programa. Dicho de otra manera, el servidor se va a detener a sí mismo. Para estoy hay varios enfoques pero te enseñaré 2 que yo considero son muy fáciles y no involucran canales o rutinas (go routines). ...

abril 17, 2023 · 3 min · 451 palabras · Parzibyte

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: variablesGet := r.URL.Query() fechaInicioComoArreglo := variablesGet["fechaInicio"] fechaFinComoArreglo := variablesGet["fechaFin"] if len(fechaInicioComoArreglo) <= 0 { return nil, errors.New("no hay fechaInicio") } if len(fechaFinComoArreglo) <= 0 { return nil, errors.New("no hay fechaFin") } A esta más limpia: valores, err := validarParametrosGetDePeticionHttp(r, []string{"fechaInicio", "fechaFin"}) if err != nil { return nil, err } fechaInicio, fechaFin := valores[0], valores[1] 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. ...

febrero 2, 2023 · 3 min · 437 palabras · Parzibyte

Curl: mostrar respuesta HTTP raw con encabezados

En este post veremos cómo ver el cuerpo de una respuesta HTTP sin parsear ni interpretar, es decir, de manera “cruda” o raw para ver todos los encabezados y respuestas HTTP. Yo lo he usado para probar un servidor web en una Raspberry Pi Pico W, ya que me daba algunos errores con Postman y otros clientes, así que necesitaba ver toda la respuesta HTTP y lo hice con curl. ...

enero 24, 2023 · 2 min · 330 palabras · Parzibyte

Crear conector para plugin de impresora térmica

En este post voy a explicarte cómo puedes consumir el plugin de impresoras térmicas y así poder imprimir desde cualquier lenguaje de programación que hable HTTP. Como bien sabes, mi plugin no es más que un servidor web que te permite imprimir en impresoras POS, solo debes indicarle las operaciones que debe hacer. Veamos entonces cómo imprimir en una impresora térmica usando cualquier lenguaje de programación y mi plugin gratuito. ...

noviembre 30, 2022 · 4 min · 793 palabras · Parzibyte

Subir archivo de JavaScript a Go (Golang)

En este post de programación cliente-servidor vamos a ver cómo enviar un archivo desde JavaScript del lado del cliente a Golang (Go) del lado del servidor. Específicamente hablando veremos cómo enviar un archivo usando fetch y FormData a través de AJAX hacia un servidor de Go. Lo que te enseñaré servirá para enviar fotos, archivos binarios o incluso una foto tomada con la cámara web con las debidos ajustes. Va a ser un ejemplo realmente simple pero que luego podrás modificar para, por ejemplo, usarlo en React, Angular, JavaScript puro o Vue. ...

septiembre 14, 2022 · 8 min · 1563 palabras · Parzibyte

PHP: problemas con file_get_contents en petición HTTP

En este post vamos a ver un problema que pasa con file_get_contents en PHP cuando usamos dicha función para hacer una petición http o queremos mostrar el contenido de una página y la descargamos con esta función. Recuerda que igualmente podemos usar file_get_contents para hacer una petición HTTP usando stream_context_create. Bien, veamos qué hacer si file_get_contents no funciona en PHP, no muestra errores ni avisos o devuelve false sin razón aparente. ...

febrero 15, 2022 · 2 min · 222 palabras · Parzibyte

The request client is not a secure context and the resource is in more-private address space local.

Recientemente (al momento de escribir este post) Chrome se ha actualizado para ser más seguro, y en ocasiones nos va a lanzar el error que dice: Access to fetch at ‘dominio’ from origin ‘otro_dominio’ has been blocked by CORS policy: The request client is not a secure context and the resource is in more-private address space local. Es un error de CORS pero no de los errores que conocemos. Este es nuevo, y dice: The request client is not a secure context and the resource is in more-private address space local. Así que en este post te mostraré de qué va ese error y por qué me interesa. ...

octubre 1, 2021 · 2 min · 358 palabras · Parzibyte

Go - Leer variable GET en servidor HTTP

En este post te mostraré cómo leer una variable de la URL en una petición GET de Go usando HTTP. Básicamente es leer una variable GET de la URL, lo que haríamos en PHP con $_GET["variable"]. ...

agosto 14, 2021 · 2 min · 280 palabras · Parzibyte