3 puntos por GN⁺ 2024-01-30 | 1 comentarios | Compartir por WhatsApp

Usar --libcurl

  • Se recomienda usar libcurl: Se recomienda que los usuarios primero prueben la transferencia deseada con la herramienta de línea de comandos curl y, cuando funcione aproximadamente como quieren, la vuelvan a ejecutar agregando la opción --libcurl [nombre_de_archivo] en la línea de comandos.
  • Generación de código: La opción de línea de comandos --libcurl genera un programa en C con el nombre de archivo proporcionado. Este programa en C usa libcurl para ejecutar la transferencia que realizó la herramienta de línea de comandos curl.
  • Excepciones y diferencias: No siempre coincide al 100%, pero puede servir como una excelente inspiración sobre las opciones de libcurl y los argumentos adicionales que se quieran usar.

Código de ejemplo

  • Ejemplo de ejecución: Si se ejecuta el comando curl http://example.com --libcurl example.c, se genera el archivo example.c en el directorio actual.
  • Código generado: El código generado incluye varias configuraciones de opciones usando curl_easy_setopt(), y algunas opciones no se pueden generar fácilmente desde la fuente, por lo que el usuario quizá deba implementarlas por su cuenta o no usarlas.

La opinión de GN⁺

  • Utilidad de libcurl: Esta función permite a los desarrolladores convertir fácilmente en un programa en C los comandos de curl que funcionan en la línea de comandos, acelerando el desarrollo de aplicaciones que usan libcurl.
  • Ventajas de la generación de código: El código generado automáticamente puede ayudar a los desarrolladores a entender y aplicar más rápido la API de libcurl.
  • Valor como herramienta de aprendizaje: Puede ser un buen material de aprendizaje para ingenieros de software principiantes, ya que muestra opciones de libcurl y casos reales de aplicación en programación de redes.

1 comentarios

 
GN⁺ 2024-01-30
Opiniones de Hacker News
  • Es útil el patrón de encontrar una solicitud de interés en la pestaña de red del navegador y usar "copiar como curl". Con eso se puede generar un comando de curl y aprovechar sitios como curlconverter.com para convertirlo en código de solicitudes del lenguaje que uses. curl funciona como una especie de "representación intermedia" que luego puede traducirse a otros lenguajes.
  • Que una interfaz de línea de comandos tenga una bandera para imprimir el código fuente del programa es una función muy genial. Es como abrir el cofre de un auto y ver lo que hay dentro: te permite entender mejor cómo funciona y modificarlo según tus necesidades. Es amigable para el usuario porque permite ajustarlo o ampliarlo como quiera.
  • Una de las razones por las que los macros de Visual Basic de Microsoft Office tuvieron éxito fue justamente una función como esta. Después de realizar una tarea en Word, Excel, etc., podías usar el macro generado como código y personalizarlo según tus necesidades. Es una idea simple pero poderosa, y también puede verse en curl.
  • Para compilar curl, hay que indicarle que enlace con libcurl. Por ejemplo, en gcc se usa la opción -lcurl. Con eso se puede imprimir la dirección IP y generar el archivo ip_fetcher.c; después de compilarlo con gcc, se puede obtener la dirección IP a través del ejecutable.
  • Hurl es un CLI de código abierto que usa libcurl y emplea texto plano para probar solicitudes HTTP. Aprovecha la estabilidad de libcurl y sus mejores capacidades, incluido HTTP/3, y añade funciones como encadenar solicitudes, capturar y pasar datos de las respuestas, y probar respuestas (JSONPath, XPath, etc.). Ofrece comodidades de sintaxis para solicitudes a APIs REST/SOAP/GraphQL, pero en esencia sigue siendo libcurl. Si usas la opción verbose, puedes hacer grep sobre el comando de curl.
  • Ojalá ffmpeg también tuviera una función así.
  • Se valora que Daniel Stenberg pone muchísima atención en los detalles y en la experiencia de desarrolladores y usuarios; ese nivel de cuidado resulta sorprendente.
  • En un video de 3 horas donde Daniel Stenberg explica directamente la mayoría de las opciones de la línea de comandos de curl, también se menciona esta opción.
  • En el título enviado deberían usarse dos guiones (--); la combinación de em dash y guion (—-) no es correcta.
  • Con la llegada de ChatGPT, un entusiasta ferviente de la IA opinó con entusiasmo que esta función ya quedó anticuada porque ya no hace falta incluir quines a medio hacer dentro del ejecutable de curl.