La herramienta de línea de comando curl es un asistente perfecto cuando trabaja con código HTTP. ¡Pruebe solicitudes, explore formatos de datos y más!
El Protocolo de transferencia de hipertexto (HTTP) es la columna vertebral de la comunicación a través de Internet, lo que permite la transferencia de datos entre servidores y clientes. Sin embargo, interactuar con los puntos finales de HTTP puede ser un desafío, especialmente para los principiantes.
Afortunadamente, curl, una herramienta de línea de comandos, proporciona una manera fácil y eficiente de enviar y recibir solicitudes HTTP. Aquí aprenderá a usar curl para realizar solicitudes básicas POST, GET, DELETE y PUT HTTP.
Instalación de rizo
De forma predeterminada, curl está instalado en los principales sistemas operativos, incluidos macOS, Linux y Unix.
Puede confirmar que tiene curl instalado ejecutando el siguiente comando:
rizo
El comando anterior debería imprimir "intenta 'curl --help' o 'curl --manual' para obtener más información" en tu terminal.
Si curl no está instalado en su sistema operativo, puede descargarlo e instalarlo desde la página de descargas de curl.
Realización de una solicitud HTTP GET
Una solicitud HTTP GET es un método para solicitar datos de un servidor web. Puede usar estas solicitudes para recuperar un recurso específico, como una página web, una imagen o un video.
Puede realizar una solicitud GET con curl en el siguiente formato:
rizo -X OBTENER
Reemplazar con la URL del recurso que desea obtener.
Por ejemplo:
rizo -X OBTENER https://example.com/todos/1
Ejecutar el comando anterior hace una solicitud HTTP GET a la URL https://example.com/todos/1. El -X OBTENER La opción especifica que el método HTTP es GET. Cuando se ejecuta el comando, curl envía una solicitud GET al servidor especificado en la URL y espera la respuesta del servidor.
Si el servidor responde con un código de estado exitoso, rizo muestra el cuerpo de la respuesta en el terminal, que, en este caso, serían los datos JSON sobre una tarea pendiente con un ID de 1.
Alternativamente, puede realizar una solicitud GET sin especificar el -X marca porque, de forma predeterminada, curl realiza una solicitud GET cuando no especifica un método de solicitud con el -X bandera.
Por ejemplo:
rizo https://example.com/todos/1
Ejecutar el comando anterior devolverá la misma respuesta que el comando anterior con el "-X OBTENER" bandera.
Realización de una solicitud HTTP POST
Una solicitud HTTP POST es un método para guardar datos en un servidor web. A diferencia de una solicitud GET, que envía datos como parte de la URL, una solicitud POST envía datos en el cuerpo del mensaje de la solicitud. Esto hace que las solicitudes POST sean más seguras para transmitir información confidencial.
Puede realizar una solicitud POST con curl en el siguiente formato:
enrollamiento -X POST -d
Por ejemplo:
curl -X POST -d 'nombre=jack' -d '[email protected]' \
https://example.com/users
El comando anterior envía una solicitud POST a https://example.com/users con los datos especificados por el -d marcar como una carga útil.
El -d bandera especifica los datos a enviar. En este caso, especificó dos parámetros de datos: nombre = gato y [email protected].
Cuando usas el -d marcar más de una vez en un comando, puede fusionar los campos usando el símbolo &.
Por ejemplo:
curl -d "nombre=jack&[email protected]" https://example.com/api/users
Algunos datos que puede intentar enviar en una solicitud POST pueden ser difíciles de incluir en una sola cadena en su terminal. En casos como este, podría ser ideal leer y publicar los datos de un archivo usando curl.
Para enviar datos de un archivo en una solicitud POST como carga útil con curl, use el @ firmar inmediatamente después de la -d indicador, seguido de la ruta del archivo al archivo que desea que curl envíe en la solicitud.
Por ejemplo:
curl -X POST -d @usuarios.txt https://example.com/api/users
Especificación del tipo de contenido
Utilizando el -d marca establece automáticamente el encabezado de tipo de contenido en application/x-www-form-urlencoded. Sin embargo, puede especificar manualmente el tipo de contenido adecuado para su solicitud utilizando el -H o --encabezamiento indicador seguido del tipo de contenido deseado.
Por ejemplo:
curl -H "Tipo de contenido: aplicación/json" \
-d '{"nombre": "Jack", "correo electrónico": "[email protected]"}' \
https://example.com/api/users
En el comando anterior, el -H marca especifica el encabezado de tipo de contenido como Tipo de contenido: aplicación/json.
Puedes reemplazar aplicación/json con cualquier otro tipo MIME válido o tipo de contenido que sea apropiado para los datos que está enviando en el cuerpo de la solicitud. Por ejemplo, al cargar datos binarios, como una imagen o un archivo de audio, debe establecer el tipo de contenido en multiparte/datos de formulario.
Esto le permite especificar el formato esperado de los datos enviados, lo que puede ser importante al interactuar con API o servicios web que requieren tipos de contenido específicos para un procesamiento adecuado.
Realización de una solicitud HTTP PUT
Una solicitud HTTP PUT es un método para actualizar un recurso existente en un servidor web o crear uno si el recurso no existe. Este método difiere del método POST en el sentido de que es idempotente. Esto significa que llamar al método PUT una o varias veces sucesivas tiene el mismo efecto en el servidor.
Puede realizar una solicitud PUT con curl en el siguiente formato:
curl -X PUT -H "Tipo de contenido: aplicación/json" \
-d '{"nombre": "Jack Bauer", "correo electrónico": "[email protected]"}' \
https://example.com/api/users/4
El comando anterior envía una solicitud PUT en formato JSON al servidor web especificado en la URL anterior y actualiza el recurso especificado. Si el recurso especificado no existe, creará el recurso en el servidor web.
Realización de una solicitud de ELIMINACIÓN HTTP
Una solicitud HTTP DELETE es un método para eliminar un recurso específico de un servidor web. Al igual que las solicitudes PUT, las solicitudes DELETE son idempotentes. Enviar la misma solicitud DELETE varias veces al mismo recurso producirá el mismo resultado en el servidor.
Puede realizar una solicitud de ELIMINACIÓN con curl ejecutando el siguiente comando:
rizo -X ELIMINAR http://example.com/api/users/3
El comando anterior envía una solicitud DELETE al servidor web especificado en la URL anterior y elimina el recurso especificado.
Las solicitudes de eliminación eliminan permanentemente el recurso especificado del servidor. Por lo tanto, un servidor web que admite DELETE generalmente requiere una forma de autenticación o autorización antes de poder hacer esta solicitud.
Aquí se explica cómo realizar una solicitud DELETE con un encabezado de autorización:
curl -X DELETE -H "Autorización: Portador my_access_token" \
https://example.com/api/users/3
El comando anterior proporciona la información de autenticación en el encabezado de la solicitud mediante el método de autenticación Bearer con el -H bandera. Autorización: Portador my_access_token es el valor del encabezado. mi_token_de_acceso es un marcador de posición para su valor de token de acceso real.
Otras formas de realizar solicitudes HTTP
Además de curl, existen varias formas de realizar solicitudes HTTP según el contexto de la solicitud. Los métodos más comunes incluyen el uso de un navegador web como Chrome, una herramienta GUI como Postman o un cliente API.
Cada una de estas opciones viene con sus ventajas y desventajas. En última instancia, la elección de una herramienta dependerá de los requisitos de su tarea.