Cómo utilizar cURL Post Data from File

How Use Curl Post Data From File



cURL es una utilidad de línea de comandos gratuita y de código abierto que se utiliza para transferir datos hacia o desde un host remoto con una mínima interacción del usuario. cURL funciona con protocolos primarios como HTTP, FTP, SCP y SFTP.

Permite a los usuarios cargar y descargar datos utilizando comandos únicos o scripts bash. También proporciona funciones como autenticación de usuario, tunelización de proxy, currículum vitae de descarga, cargas basadas en formularios, certificados SSL y mucho más. Es seguro decir que cURL es más que un cliente HTTP.







Este tutorial lo guiará a través de una funcionalidad de cURL que permite a los usuarios realizar solicitudes de publicación HTTP utilizando datos de archivo.



Antes de comenzar, permítame mencionar que esta no es una guía para principiantes de cURL; necesita un grado de conocimiento previo, especialmente conocimiento de protocolos de red, solicitudes HTTP y más.



Antes de que podamos sumergirnos en el uso de cURL para realizar solicitudes POST, primero vamos a configurarlo.





Cómo instalar cURL

En la mayoría de los casos, encontrará cURL instalado en las principales distribuciones de Linux de forma predeterminada. Para confirmar que tiene cURL, use el comando

curl –-help

Si recibe un error:



-bash: rizo:mandoextraviado

Deberá instalarlo antes de continuar.

Utilice el administrador de paquetes predeterminado para completar la instalación como se muestra en los siguientes comandos:

sudo apt-get update

sudo apt-get installrizo-y

Antes de discutir cómo POST datos de un archivo con cURL, permítame hablar brevemente sobre la solicitud POST. Como de costumbre, si ya está familiarizado con esto, puede seguir adelante; de lo contrario, quédese.

Solicitud cURL POST

La solicitud de publicación HTTP es uno de los métodos de solicitud HTTP / HTTPS más populares que se utilizan para enviar datos a un host remoto para crear o actualizar un recurso.

Ahora :

No confunda el método con PUT; aunque son bastante similares, tienen sus diferencias.

Los datos enviados mediante una solicitud POST se almacenan principalmente en el cuerpo de la solicitud HTTP.

Por ejemplo, considere la solicitud POST a continuación que envía el nombre de usuario y la contraseña, así como sus valores.

CORREO/restringido/login.php HTTP/1.1Anfitrión: linuxhint.com Tipo de contenido: aplicación/x-www-form-urlencodednombre de usuario= linuxhint&contraseña= contraseña

Para enviar la solicitud POST anterior usando cURL, podemos especificar los comandos como:

rizo-xCORREO-D nombre de usuario= linuxhint&contraseña= contraseña https://linuxhint.com/restringido/login.php

En el comando anterior, usamos la opción -d para decirle a cURL que incluya los encabezados predeterminados, que es Content-Type: application / x-www-form-urlencoded

La opción -X especifica el método de solicitud HTTP que se utilizará, en este caso, la solicitud HTTP POST.

cURL Especificar el tipo de contenido

En algunos casos, es posible que deseemos especificar [explícitamente] el tipo de contenido al enviar la solicitud. La entidad Content-Type en el encabezado especifica el tipo de medio del recurso que estamos enviando. El tipo de medio también se conoce comúnmente como tipo MIME.

Si desea obtener más información sobre los tipos MIME, considere el recurso que se proporciona a continuación:

https://linkfy.to/IANA-MIME-Types

Para especificar el tipo de contenido en una solicitud cURL, podemos usar la bandera -H. Por ejemplo, enviemos el tipo de aplicación MIME / JSON.

rizo-XCORREO-D {nombre de usuario: linuxhint, contraseña: contraseña} -HTipo de contenido: aplicación/json https://linuxhint.com/restringido/login.php

Lo anterior especifica que queremos enviar un objeto JSON a la URL proporcionada. Puede usar esto para leer los valores de un archivo JSON o enviarlo como sin formato.

Cómo leer datos de un archivo

Suponga que desea realizar solicitudes en la línea de comandos usando cURL, pero tiene los datos para enviar almacenados en un archivo. Puede usar Content-Type para especificar el tipo de medio y luego pasar la ruta del archivo que contiene los datos. Para este ejemplo, ilustraré el uso de un objeto JSON.

El archivo JSON (data.json) contiene los siguientes valores:

{
'nombre de usuario':'linuxhint',
'contraseña':'contraseña'
}

Para enviar estos datos desde un archivo JSON, podemos usar -d y luego pasar el nombre del archivo como se muestra en el siguiente comando:

rizo-XCORREO-HTipo de contenido: aplicación/json-D @data.json https://linuxhint.com/restringido/login.php

También puede utilizar la opción –data-binary.

rizo-XCORREO-HTipo de contenido: aplicación/json--data-binary @/hogar/usuario/data.json https://linuxhint.com/restringido/login.php

También puede utilizar un archivo de texto para enviar los datos; todo lo que necesita especificar es el tipo de contenido como texto / sin formato.

Por ejemplo, un archivo de texto (data.txt) que contiene los siguientes valores

nombre de usuario= linuxhint&contraseña= contraseña

Usando el comando cURL, simplemente envíe la solicitud como:

rizo-XCORREO-HTipo de contenido: texto/sencillo-Ddata.txt https://linuxhint.com/restringido/login.php

Puede usar otros tipos de archivos que puede usar, como XML, HTML y muchos más.

Conclusión

En este tutorial, hemos discutido cómo realizar solicitudes POST y pasar datos en varios formatos. Es bueno tener en cuenta que además de ser muy poderoso, cURL también es muy flexible. Puede combinar una colección de opciones en un solo comando para crear solicitudes poderosas. Para obtener más información, recomiendo la documentación de cURL ya que está bien escrita.

https://curl.se/docs/

Gracias por leer y diviértete con cURL.