paint-brush
Cómo usar cURL fácilmente para solicitudes HTTPpor@adityasridhar
92,449 lecturas
92,449 lecturas

Cómo usar cURL fácilmente para solicitudes HTTP

por Aditya Sridhar2018/11/21
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow
ES

Demasiado Largo; Para Leer

Todo desarrollador necesita conocer un montón de herramientas para ser efectivo. cURL en una de esas herramientas 😄

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coin Mentioned

Mention Thumbnail
featured image - Cómo usar cURL fácilmente para solicitudes HTTP
Aditya Sridhar HackerNoon profile picture

Todo desarrollador necesita conocer un montón de herramientas para ser efectivo. cURL en una de esas herramientas 😄

En este artículo, explicaré cómo se puede usar curl para realizar solicitudes HTTP .

¿Qué es cURL?

cURL se usa básicamente para transferir datos usando Protocolos de Internet para la URL dada.

Curl es un programa del lado del cliente. En el nombre cURL , c significa Cliente y URL indica que curl funciona con URL.

El proyecto curl tiene una línea de comando curl y también una biblioteca libcurl. En este artículo nos centraremos en la línea de comando curl.

Curl se ocupa de un montón de protocolos de Internet como HTTP, FTP, SMTP, TELNET, etc.

En este artículo nos ocuparemos únicamente de realizar solicitudes HTTP desde Curl.

Requisito previo

Puede verificar si tiene Curl instalado en su sistema usando el comando.

 curl --version

Si Curl no está en su sistema, puede instalarlo desde esta URL https://curl.haxx.se/dlwiz/ .

Cómo usar Curl para solicitudes HTTP

He creado 2 puntos finales de API REST usando NodeJS . Un punto final admite la solicitud GET y el otro punto final admite la solicitud POST.

En este artículo, llamaremos a los extremos GET y POST usando Curl.

Clona el código de NodeJS en tu local desde este repositorio de github

El repositorio tiene instrucciones sobre cómo clonar y ejecutar el código de NodeJS.

Después de clonar el código, vaya a la carpeta del proyecto e inicie la aplicación con el siguiente comando.

 node server.js

La aplicación se ejecuta en el puerto localhost 3000.

Solicitud GET con cURL

La aplicación tiene un punto final GET /sample . Este punto final acepta un parámetro de consulta llamado nombre .

Llamemos a este punto final de API usando curl.

Vaya a un nuevo símbolo del sistema y escriba el siguiente comando

 curl http://localhost:3000/sample?name=aditya

Esto dará la siguiente salida

 {"text":"Hello aditya"}

También puede obtener un resultado detallado usando Curl. Ejecute el siguiente comando

 curl -v http://localhost:3000/sample?name=aditya

-v se usa para obtener una salida detallada.

Esto dará la siguiente salida.

 * Trying ::1...* TCP_NODELAY set* Trying 127.0.0.1...* TCP_NODELAY set* Connected to localhost (127.0.0.1) port 3000 (#0)> GET /sample?name=aditya HTTP/1.1> Host: localhost:3000> User-Agent: curl/7.55.1> Accept: */*>< HTTP/1.1 200 OK< Content-Type: application/json< Date: Thu, 15 Nov 2018 12:36:21 GMT< Connection: keep-alive< Content-Length: 23<{"text":"Hello aditya"}* Connection #0 to host localhost left intact

El resultado detallado tiene detalles como el código de estado, el tipo de contenido, la longitud del contenido, etc. Se puede usar para tener una mejor idea de lo que sucedió durante la solicitud HTTP.

El código de estado es 200, lo que indica que la solicitud HTTP fue exitosa.

El tipo de contenido de la respuesta es JSON.

Content-Length indica el tamaño de la respuesta. Aquí el tamaño de la respuesta es de 23 bytes.

Solicitud POST con cURL

La aplicación tiene un punto de conexión POST /test . Este extremo acepta un cuerpo de publicación con el siguiente formato.

 { "value":"nodejs"}

Para realizar la llamada POST, escriba el siguiente comando.

 curl --header "Content-Type: application/json" -d "{\"value\":\"node JS\"}" http://localhost:3000/test

–header indica el tipo de contenido del cuerpo de la publicación. Aquí está JSON.

-d se usa para enviar el contenido del cuerpo de la publicación.

La salida de este comando se muestra a continuación.

 {"text":"Post Request Value is node JS"}

Para obtener un resultado detallado, use el siguiente comando

 curl -v --header "Content-Type: application/json" -d "{\"value\":\"node JS\"}" http://localhost:3000/test

La salida se muestra a continuación.

 * Trying ::1...* TCP_NODELAY set* Trying 127.0.0.1...* TCP_NODELAY set* Connected to localhost (127.0.0.1) port 3000 (#0)> POST /test HTTP/1.1> Host: localhost:3000> User-Agent: curl/7.55.1> Accept: */*> Content-Type: application/json> Content-Length: 19>* upload completely sent off: 19 out of 19 bytes< HTTP/1.1 200 OK< Content-Type: application/json< Date: Thu, 15 Nov 2018 13:03:37 GMT< Connection: keep-alive< Content-Length: 41

Opciones adicionales proporcionadas por línea de comando

Los encabezados existentes se pueden modificar usando la opción -H .

Ejecute el siguiente comando para modificar el encabezado de User-Agent a Dummy Agent

 curl -v -H "User-Agent:Dummy Agent" http://localhost:3000/sample?name=adi

La salida para el comando anterior se muestra a continuación

 * Trying ::1...* TCP_NODELAY set* Trying 127.0.0.1...* TCP_NODELAY set* Connected to localhost (127.0.0.1) port 3000 (#0)> GET /sample?name=adi HTTP/1.1> Host: localhost:3000> Accept: */*> User-Agent:Dummy Agent>< HTTP/1.1 200 OK< Content-Type: application/json< Date: Thu, 15 Nov 2018 13:33:27 GMT< Connection: keep-alive< Content-Length: 20<{"text":"Hello adi"}* Connection #0 to host localhost left intact

En el resultado anterior, se puede ver que User-Agent se ha convertido en Dummy Agent .

Ahora supongamos que desea eliminar el encabezado de host . Esto se puede hacer ejecutando el siguiente comando.

 curl -v -H "Host:" http://localhost:3000/sample?name=adi

El resultado del comando anterior se muestra a continuación y se puede ver que Host ya no está allí

 * Trying ::1...* TCP_NODELAY set* connect to ::1 port 3000 failed: Connection refused* Trying 127.0.0.1...* TCP_NODELAY set* Connected to localhost (127.0.0.1) port 3000 (#0)> GET /sample?name=adi HTTP/1.1> User-Agent: curl/7.55.1> Accept: */*>< HTTP/1.1 200 OK< Content-Type: application/json< Date: Thu, 15 Nov 2018 13:38:37 GMT< Connection: keep-alive< Content-Length: 20<{"text":"Hello adi"}* Connection #0 to host localhost left intact

-H también se puede usar para agregar nuevos encabezados. Esto se puede hacer usando la sintaxis curl -v -H "newheader: headervalue"

Referencias

Documentación de cURL: https://ec.haxx.se/

Más información sobre el uso de Curl para solicitudes HTTP https://ec.haxx.se/http.html

Felicidades 😄

Ahora sabe cómo usar cURL para solicitudes HTTP básicas. Este artículo cubre una porción muy pequeña de lo que curl realmente puede hacer.

Para saber más sobre curl, puede consultar los enlaces de documentación que he proporcionado anteriormente.

Sobre el Autor

Me encanta la tecnología y sigo los avances en el campo.

No dude en conectarse conmigo en mi cuenta de LinkedIn https://www.linkedin.com/in/aditya1811/

También puedes seguirme en twitter https://twitter.com/adityasridhar18

Mi sitio web: https://adityasridhar.com/

Publicado originalmente en adityasridhar.com .