cURL(Client URL) ha sido el cliente HTTP de línea de comandos de referencia durante décadas. Es ampliamente utilizado tanto por desarrolladores como por administradores en todas las facetas del desarrollo web, como pruebas de API, obtención de páginas web e incluso transferencia de archivos. Enel Scraping web, utilizamos principalmente cURL para probar solicitudes HTTP.
REST (Representational State Transfer) es un estándar utilizado para crear una API (interfaz de programación de aplicaciones). Con una API REST, un servidor se configura para gestionar cuatro tipos básicos de solicitudes:GET,POST,PUTyDELETE. Cada uno de estos métodos se utiliza para interactuar con un servidor web. Profundizaremos en este tema a lo largo del artículo.
Introducción
Instalación
cURL viene preinstalado en la mayoría de los principales sistemas operativos actuales. Ha sido un elemento básico en Linux durante muchos años, pero ahora también se incluye de forma predeterminada en macOS y Windows. Puede comprobar su instalación de cURL con el siguiente comando.
curl --version
Si cURL está correctamente instalado, debería ver una respuesta similar a esta. Lo más importante es que el comando --version debería mostrar un número de versión. A continuación, nuestro número de versión es curl 7.81.0. El resto de la salida es específico de la versión y del sistema operativo.
curl 7.81.0 (x86_64-pc-linux-gnu) libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.18
Fecha de lanzamiento: 05-01-2022
Protocolos: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Características: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-Proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets zstd
Si por alguna razón no tienes cURL instalado, puedes encontrar una versión compatible con tu sistema operativo en su página de descargasaquí.
<!–
- Cómo instalar curl: sea breve, enlace a las instrucciones específicas del sistema operativo
–>
Cómo utilizar cURL
Realizar una solicitud GET
La solicitud HTTP más común es la solicitud GET. Utilizamos GET para obtener información. Cuando se recupera una página web, el navegador realiza una solicitud GET en segundo plano. Con cURL, utilizamos el indicador GET para realizarla. El siguiente ejemplo envía una solicitud GET a https://jsonplaceholder.typicode.com/posts.
curl -X GET https://jsonplaceholder.typicode.com/posts
Cuando realizamos esta solicitud, obtenemos las publicaciones como respuesta. A continuación, mostramos solo un fragmento de la respuesta.
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipitnsuscipit recusandae consequuntur expedita et cumnreprehenderit molestiae ut ut quas totamnnostrum rerum est autem sunt rem eveniet architecto"
},
{
"userId": 1,
"id": 2,
"title": "qui est esse",
"body": "est rerum tempore vitaensequi sint nihil reprehenderit dolor beatae ea dolores nequenfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendisnqui aperiam non debitis possimus qui neque nisi nulla"
},
{
"userId": 1,
"id": 3,
"title": "ea molestias quasi exercitationem repellat qui ipsa sit aut",
"body": "et iusto sed quo iurenvoluptatem occaecati omnis eligendi aut adnvoluptatem doloribus vel accusantium quis pariaturnmolestiae porro eius odio et labore et velit aut"
},
{
"userId": 1,
"id": 4,
"title": "eum et est occaecati",
"body": "ullam et saepe reiciendis voluptatem adipiscinsit amet autem assumenda provident rerum culpanquis hic commodi nesciunt rem tenetur doloremque ipsam iurenquis sunt voluptatem rerum illo velit"
},
{
"userId": 1,
"id": 5,
"title": "nesciunt quas odio",
"body": "repudiandae veniam quaerat sunt sednalias aut fugiat sit autem sed estnvoluptatem omnis possimus esse voluptatibus quisnest aut tenetur dolor neque"
},
<!–
- ¿Qué es una solicitud GET?
–>
Realizar una solicitud POST
Utilizamos una solicitud POST cuando queremos enviar información a un servidor para que se guarde en una base de datos. Los ejemplos más comunes de esto son las publicaciones en redes sociales. El siguiente ejemplo envía una solicitud POST para crear una nueva publicación utilizando la API.
curl -X POST https://jsonplaceholder.typicode.com/posts
-H "Content-Type: application/json"
-d '{
"title": "foo",
"body": "bar",
"userId": 1
}'
Tras nuestra solicitud, recibimos el objeto de publicación real como respuesta.
{
"title": "foo",
"body": "bar",
"userId": 1,
"id": 101
}
Si desea obtener más información sobre cómo enviar solicitudesPOSTdetalladas, consulteesta guía.
Realizar una solicitud PUT
Como acaba de aprender, las solicitudes POST se utilizan para crear un objeto en una base de datos. A veces, queremos editar un objeto que ya existe en una base de datos. Para modificar un objeto existente, utilizamos una solicitud PUT. El siguiente ejemplo actualiza el cuerpo de nuestra publicación anterior de bar a bar actualizado.
curl -X PUT https://jsonplaceholder.typicode.com/posts/1
-H "Content-Type: application/json"
-d '{
"id": 1,
"title": "foo",
"body": "updated bar",
"userId": 1
}'
Al ejecutarlo, recibirá la siguiente respuesta. Como puede ver, el cuerpo de nuestra publicación se ha actualizado.
{
"id": 1,
"title": "foo",
"body": "updated bar",
"userId": 1
}
Realizar una solicitud DELETE
Las solicitudesDELETE deberían ser bastante evidentes a estas alturas. La solicitud DELETE se utiliza para eliminar un objeto existente de una base de datos utilizando un identificador único. En este caso, nuestro identificador (id) es 1, o la publicación número uno. El código siguiente elimina la publicación que hemos creado anteriormente.
curl -X DELETE https://jsonplaceholder.typicode.com/posts/1
Como puede ver, nuestra respuesta es solo un objeto JSON vacío. La publicación se ha eliminado.
{}
cURL con Web Unlocker

Cuando utiliza cURL conWeb Unlocker, puede realizar solicitudes HTTP igual que lo haría utilizando cURL por sí solo. Sin embargo, Web Unlocker le ofrece la potencia del Proxy.
Con Web Unlocker, obtienes geotargeting y Resolución de CAPTCHA procedentes de algunos de los mejores proxies del mundo. Lo mejor de todo es que estos proxies se gestionan por ti. Solo tienes que conectar el Proxy y continuar con tu día como de costumbre.
Una vez que haya configurado Web Unlocker, asegúrese de guardar su nombre de usuario, nombre de zona y contraseña. Los necesitará para autenticar su conexión. En el ejemplo siguiente, configuramos nuestra conexión para utilizar un Proxy con sede en EE. UU.
curl -i --proxy brd.superproxy.io:33335 --proxy-user brd-customer-<TU_NOMBRE_DE_USUARIO>-zone-<TU_NOMBRE_DE_ZONA>-country-us:<TU_CONTRASEÑA> -k "https://geo.brdtest.com/mygeo.json"
-i: Indica a cURL que queremos que se incluyan los encabezados en nuestra respuesta. Esto es útil para fines de depuración.--Proxy brd.superproxy.io:33335 --Proxy-user brd-customer-<TU_NOMBRE_DE_USUARIO>-zone-<TU_NOMBRE_DE_ZONA>-country-us:<TU_CONTRASEÑA>--proxy brd.superproxy.io:33335: Esto le indica a cURL que queremos utilizar un Proxy ubicado enbrd.superproxy.io:33335.--proxy-user brd-customer-<TU_NOMBRE_DE_USUARIO>-zone-<TU_NOMBRE_DE_ZONA>-country-us:<TU_CONTRASEÑA>: Esto representa nuestra cadena de autenticación. La cadena de autenticación tiene el siguiente formato:<NOMBRE de usuario>:<CONTRASEÑA>. Con Web Unlocker, tu nombre de usuario completo incluye todo lo siguiente:brd-customer-<TU_NOMBRE_DE_USUARIO>-zona-<TU_NOMBRE_DE_ZONA>-país-us.
kse utiliza para indicar a cURL que queremos omitir la certificación SSL. Si está interesado en utilizar Web Unlocker a largo plazo, puede descargar e instalar nuestro certificado SSLaquí. Esto permitirá que su máquina autocertifique la conexión.
Puede ver nuestra respuesta de ejemplo a continuación. Como puede ver, nuestra ubicación aparece en Nueva Jersey.
{"country":"US","asn":{"asnum":20473,"org_name":"AS-VULTR"},"geo":{"city":"Piscataway","region":"NJ","region_name":"New Jersey","postal_code":"08854","latitude":40.5511,"longitude":-74.4606,"tz":"America/New_York","lum_city":"piscataway","lum_region":"nj"}}
Si te interesa obtener más información sobre Web Unlocker, echa un vistazo a nuestroAPI Playground. Es un lugar ideal para experimentar y aprender más sobre cómo realizar solicitudes API utilizando muchos lenguajes diferentes y bibliotecas HTTP. Puedes obtener más información sobre el uso de cURL con Proxiesaquí.
¿A dónde puede llevarle cURL?
Una vez que tenga un conocimiento adecuado de cURL y HTTP, podrá utilizar HTTP prácticamente en cualquier lugar. Puede utilizar herramientas GUI comoPostmaneInsomniapara realizar pruebas generales de API.
Con Python, puedes utilizarRequestso incluso seguir utilizandocURL dentro de Python. Con JavaScript, puedes utilizarNode-FetchoAxiospara automatizar tus solicitudes HTTP.
Si prefieres seguir utilizando herramientas de línea de comandos, también hay muchas opciones disponibles. Echa un vistazo a HTTPie y wget. Ambas herramientas son excelentes utilidades de línea de comandos y funcionan muy bien con HTTP.
Conclusión
En lo que respecta a los clientes HTTP, cURL ha sido el estándar de la línea de comandos durante décadas y no va a cambiar en un futuro próximo. Tanto si eres desarrollador como administrador de sistemas, ahora tienes los conocimientos necesarios para el uso básico de cURL y una comprensión decente de cómo funciona HTTP. Incluso puedesdescargar archivosy configurarencabezados personalizadoscon cURL. Ahora que sabes cómo utilizar Web Unlocker con él, puedes ser realmente eficaz con HTTP, independientemente del trabajo que estés realizando. Si eres un aspirante a desarrollador, aprende a utilizar HTTP en el lenguaje que prefieras.