Cómo hacer una solicitud POST con curl

8 gen 2024 3 min di lettura
Cómo hacer una solicitud POST con curl
Indice dei contenuti

Introducción

curl es una utilidad de línea de comandos para transferir datos hacia o desde un servidor remoto utilizando uno de los protocolos admitidos. Se instala de forma predeterminada en Windows, macOS y la mayoría de las distribuciones de Linux.

Los administradores de sistemas, desarrolladores y otros usuarios utilizan curl para probar API, ver encabezados de respuesta y realizar solicitudes HTTP.

Este artículo explica cómo utilizar curl para realizar solicitudes POST.

Opciones de rizo

El método HTTP POST se utiliza para enviar datos al servidor remoto.

La forma general del comando curl para realizar una solicitud POST es la siguiente:

curl -X POST [options] [URL]

La opción -X especifica qué método de solicitud HTTP se utilizará al comunicarse con el servidor remoto. En la mayoría de los casos, no es necesario configurar el método porque está determinado por las opciones de la línea de comandos.

Hacer una solicitud POST

Una solicitud POST típica se envía a través de un formulario HTML y los datos enviados al formulario generalmente están codificados en el tipo de formato application/x-www-form-urlencoded. Las claves y valores de los datos están codificados en pares clave-valor, separados por el símbolo & y separados = entre la clave y el valor.

Para enviar una solicitud POST con curl, use la opción -d ( --data ) para especificar los datos:

curl -d 'name=noviello&[email protected]' https://example.com/form/

En el ejemplo anterior, enviamos datos al servidor remoto que consta de dos pares clave-valor: "nombre=noviello" y " correo electró[email protected] ".

También puede enviar datos utilizando múltiples opciones -d. Por ejemplo, el comando anterior también se puede escribir así:

curl -d 'name=noviello' -d '[email protected]' https://example.com/form/

Al enviar datos a curl usando la opción -d, siempre debe codificar correctamente en URL todos los caracteres no alfanuméricos tanto en claves como en valores. Por ejemplo, si envía datos que contienen un nombre con espacios ("John Doe"), el comando se verá así:

curl -d 'name=John%20Doe' https://example.com/form/

Sin embargo, resulta un poco incómodo codificar manualmente datos que aún no están codificados. En este caso, es mejor utilizar la opción --data-urlencode que le indica curl que codifique los datos proporcionados. El comando anterior, cuando se usa con la opción --data-urlencode, se verá así:

curl --data-urlencode 'name=John Doe' https://example.com/form/

Los datos pasados ​​al comando curl suelen tener el formato key=value. Cuando utiliza la opción --data-urlencode, solo se codifica la parte del valor. curl espera que la clave ya esté codificada en URL.

Si envía datos que contienen una gran cantidad de pares clave-valor, en lugar de escribir los datos en la línea de comando, puede almacenarlos en un archivo y pasar ese archivo a curl:

curl -d @name_of_the_file https://example.com/form/

Cuando los datos proporcionados al comando comienzan con el símbolo @, curl trata los datos como un archivo en el sistema local y leerá y utilizará los datos de ese archivo.

Realice una solicitud POST utilizando los datos del formulario de varias partes

El tipo de contenido multipart/form-data se utiliza cuando los datos del formulario contienen archivos binarios u otros datos de carga útil de gran tamaño.

Para crear una solicitud POST de varias partes, invoque el comando curl con una o más opciones -F ( --form ), seguidas de pares key=value. Cuando se usa la opción -F, curl envía datos usando el tipo de contenido multipart/form-data.

El siguiente ejemplo muestra cómo realizar una solicitud POST a un formulario que tiene campos "nombre" e "imagen":

curl -F 'name=noviello' -F '[email protected]' https://example.com/form/

Subir archivo

Para PUBLICAR un archivo con curl, agregue el símbolo @ antes de la ruta del archivo. El archivo puede ser un archivo, una imagen, un documento, etc.

curl -F 'image=@/home/user/Pictures/wallpaper.jpg' http://example.com/upload/

PUBLICAR datos JSON con cURL

JSON es un formato de datos basado en texto que se utiliza para transferencias de datos entre servicios web y API.

Puede enviar datos JSON usando POST usando curl la opción --json.

A continuación se muestra un ejemplo básico de cómo enviar un objeto JSON a un servidor:

curl --json '{"website": "noviello.it"}' http://example.com/api/

curl envía datos JSON tal cual, así que asegúrese de que estén en un formato JSON válido.

Al igual que con las solicitudes POST normales, puedes usar múltiples opciones --json en un solo comando:

curl --json '{"name": "Jonn"}' --json '{"age": "36"}' http://example.com/api/

Los datos JSON también se pueden leer desde un archivo local:

curl --json @json_data.txt http://example.com/api/

Si está utilizando un script curl, puede canalizar los datos JSON desde otro comando a curl, como se muestra a continuación:

echo '{"website": "noviello.it"}' | curl --json @- http://example.com/api/

La parte @- significa leer el cuerpo desde la entrada estándar.

Conclusión

Le mostramos cómo usar curl para realizar solicitudes POST. Para obtener más información sobre curl, visite la página de documentación de Curl.

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.