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 , significa Cliente y indica que curl funciona con URL. cURL c 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 REST usando . Un punto final admite la solicitud GET y el otro punto final admite la solicitud POST. API NodeJS 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 . Este punto final acepta un parámetro de consulta llamado . /sample 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 se usa para obtener una salida detallada. -v 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 . Este extremo acepta un cuerpo de publicación con el siguiente formato. /test { "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 indica el tipo de contenido del cuerpo de la publicación. Aquí está JSON. –header se usa para enviar el contenido del cuerpo de la publicación. -d 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 a User-Agent 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 se ha convertido en . User-Agent Dummy Agent Ahora supongamos que desea eliminar el encabezado de . Esto se puede hacer ejecutando el siguiente comando. host 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 ya no está allí Host * 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 también se puede usar para agregar nuevos encabezados. Esto se puede hacer usando la sintaxis -H 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 .