curl es una herramienta increíble que te permite crear solicitudes de red desde la línea de comandos
curl es una herramienta de línea de comandos que permite transferir datos a través de la red.
Admite muchos protocolos listos para usar, incluidos HTTP, HTTPS, FTP, FTPS, SFTP, IMAP, SMTP, POP3 y muchos más.
Cuando se trata de depurar solicitudes de red, curl es una de las mejores herramientas que puedes encontrar.
Es una de esas herramientas que, una vez que sabes cómo usarlas, siempre vuelves a ellas. El mejor amigo de un programador.
Es universal, funciona en Linux, Mac y Windows. Consulta la guía de instalación oficial para instalarlo en tu sistema.
Dato curioso: el autor y mantenedor de curl, sueco, fue premiado por el rey de Suecia por las contribuciones que su trabajo (curl y libcurl) hizo al mundo de la informática.
Analicemos algunos de los comandos y operaciones que probablemente desee realizar al trabajar con solicitudes HTTP.
Estos ejemplos implican trabajar con HTTP, el protocolo más popular.
- Realizar una solicitud HTTP GET
- Obtener los encabezados de respuesta HTTP
- Obtenga únicamente los encabezados de respuesta HTTP
- Realizar una solicitud HTTP POST
- Realizar una solicitud HTTP POST enviando JSON
- Realizar una solicitud HTTP PUT
- Seguir una redirección
- Almacenar la respuesta en un archivo
- Uso de autenticación HTTP
- Establecer un agente de usuario diferente
- Inspeccionar todos los detalles de la solicitud y la respuesta.
- Copiar cualquier solicitud de red del navegador a un comando curl
Realizar una solicitud HTTP GET
Cuando realiza una solicitud, curl devolverá el cuerpo de la respuesta:
curl https://flaviocopes.com/
Obtener los encabezados de respuesta HTTP
De forma predeterminada, los encabezados de respuesta están ocultos en la salida de curl. Para mostrarlos, utilice la i
opción:
curl -i https://flaviocopes.com/
Obtenga únicamente los encabezados de respuesta HTTP
Al utilizar esta I
opción, puede obtener solo los encabezados y no el cuerpo de la respuesta:
curl -I https://flaviocopes.com/
Realizar una solicitud HTTP POST
La X
opción le permite cambiar el método HTTP utilizado. De manera predeterminada, se utiliza GET y es lo mismo que escribir
curl -X GET https://flaviocopes.com/
El uso -X POST
realizará una solicitud POST.
Puede realizar una solicitud POST pasando datos codificados en URL:
curl -d "option=valuesomething=anothervalue" -X POST https://flaviocopes.com/
En este caso application/x-www-form-urlencoded
se envía el tipo de contenido.
Realizar una solicitud HTTP POST enviando JSON
En lugar de publicar datos codificados en URL, como en el ejemplo anterior, es posible que desees enviar JSON. Fotos Porno y actrices porno
En este caso, es necesario configurar explícitamente el encabezado Content-Type mediante la H
opción:
curl -d '{"option": "value", "something": "anothervalue"}' -H "Content-Type: application/json" -X POST https://flaviocopes.com/
También puedes enviar un archivo JSON desde tu disco:
curl -d "@my-file.json" -X POST https://flaviocopes.com/
Realizar una solicitud HTTP PUT
El concepto es el mismo que para las solicitudes POST, solo cambia el método HTTP usando-X PUT
Seguir una redirección
Una respuesta de redirección como 301, que especifica el Location
encabezado de respuesta, puede ser seguida automáticamente especificando la L
opción:
curl https://flaviocopes.com/
no seguirá automáticamente a la versión HTTPS que configuré para redirigir, pero esto lo hará:
curl -L https://flaviocopes.com/
Almacenar la respuesta en un archivo
Usando la o
opción puedes indicarle a curl que guarde la respuesta en un archivo:
curl -o file.html https://flaviocopes.com/
También puedes simplemente guardar un archivo por su nombre en el servidor, usando la O
opción:
curl -O https://flaviocopes.com/index.html
Uso de autenticación HTTP
Si un recurso requiere autenticación HTTP básica, puede utilizar la u
opción para pasar los valores de usuario:contraseña:
curl -u user:pass https://flaviocopes.com/
Establecer un agente de usuario diferente
El agente de usuario le indica al servidor qué cliente está realizando la solicitud. De manera predeterminada, curl envía el curl/version
agente de usuario, como: curl/7.54.0
.
Puede especificar un agente de usuario diferente utilizando la --user-agent
opción:
curl --user-agent "my-user-agent" https://flaviocopes.com
Inspeccionar todos los detalles de la solicitud y la respuesta.
Utilice la --verbose
opción para hacer que curl muestre todos los detalles de la solicitud y la respuesta:
curl --verbose -I https://flaviocopes.com/
* Trying 178.128.202.129...* TCP_NODELAY set* Connected to flaviocopes.com (178.128.202.129) port 443 (#0)* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256* Server certificate: flaviocopes.com* Server certificate: Let's Encrypt Authority X3* Server certificate: DST Root CA X3 HEAD / HTTP/1.1 Host: flaviocopes.com User-Agent: curl/7.54.0 Accept: */* HTTP/1.1 200 OKHTTP/1.1 200 OK Cache-Control: public, max-age=0, must-revalidateCache-Control: public, max-age=0, must-revalidate Content-Type: text/html; charset=UTF-8Content-Type: text/html; charset=UTF-8 Date: Mon, 30 Jul 2018 08:08:41 GMTDate: Mon, 30 Jul 2018 08:08:41 GMT...
Copiar cualquier solicitud de red del navegador a un comando curl
Al inspeccionar cualquier solicitud de red mediante las herramientas para desarrolladores de Chrome , tiene la opción de copiar esa solicitud a una solicitud curl:
curl 'https://github.com/curl/curl' -H 'Connection: keep-alive' -H 'Pragma: no-cache' -H 'Cache-Control: no-cache' -H 'Upgrade-Insecure-Requests: 1' -H 'DNT: 1' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8' -H 'Referer: https://www.google.it/' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: en-US,en;q=0.9,it;q=0.8' -H 'Cookie: _octo=GH1.1.933116459.1507545550; _ga=GA1.2.643383860.1507545550; tz=Europe%2FRome; user_session=XXXXX; __Host-user_session_same_site=YYYYYY; dotcom_user=flaviocopes; logged_in=yes; has_recent_activity=1; _gh_sess=ZZZZZZ' --compressed
Tal vez te puede interesar:
- Introducción a React
- Agregar evento de clic a los elementos DOM devueltos desde querySelectorAll
- Cómo cambiar el valor de un nodo DOM
- Cómo comprobar si un elemento DOM tiene una clase
La guía curl para solicitudes HTTP
Realizar una solicitud HTTP GETObtener los encabezados de respuesta HTTPObtenga únicamente los encabezados de respuesta HTTPRealizar una solicitud HTTP POSTRe
programar
es
https://aprendeprogramando.es/static/images/programar-la-guia-curl-para-solicitudes-http-1809-0.jpg
2024-10-28
Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente