3 Punkte von GN⁺ 2024-01-30 | 1 Kommentare | Auf WhatsApp teilen

Verwendung von --libcurl

  • Empfehlung zur Nutzung von libcurl: Nutzern wird empfohlen, zunächst das curl-Kommandozeilenwerkzeug zu verwenden, um die gewünschte Übertragung auszuprobieren. Wenn sie ungefähr wie gewünscht funktioniert, sollten sie den Schalter --libcurl [Dateiname] zur Kommandozeile hinzufügen und den Befehl erneut ausführen.
  • Code-Generierung: Die Kommandozeilenoption --libcurl erzeugt mit dem angegebenen Dateinamen ein C-Programm. Dieses C-Programm verwendet libcurl, um die Übertragung auszuführen, die das curl-Kommandozeilenwerkzeug durchgeführt hat.
  • Ausnahmen und Unterschiede: Es ist nicht immer zu 100 % identisch, kann aber eine hervorragende Inspiration für die gewünschten libcurl-Optionen und zusätzlichen Argumente liefern.

Beispielcode

  • Ausführungsbeispiel: Wenn der Befehl curl http://example.com --libcurl example.c ausgeführt wird, wird im aktuellen Verzeichnis die Datei example.c erzeugt.
  • Generierter Code: Der erzeugte Code enthält verschiedene Optionseinstellungen mit curl_easy_setopt(). Einige Optionen lassen sich nicht leicht direkt aus dem Quelltext erzeugen, sodass Nutzer sie selbst implementieren oder möglicherweise nicht verwenden.

Meinung von GN⁺

  • Nützlichkeit von libcurl: Diese Funktion ermöglicht es Entwicklern, einen auf der Kommandozeile funktionierenden curl-Befehl einfach in ein C-Programm umzuwandeln und so die Entwicklung von Anwendungen mit libcurl zu beschleunigen.
  • Vorteile der Code-Generierung: Der automatisch erzeugte Code kann Entwicklern helfen, die libcurl-API schneller zu verstehen und anzuwenden.
  • Wert als Lernwerkzeug: Für angehende Softwareentwickler kann dies ein gutes Lernmaterial sein, das libcurl-Optionen und praktische Anwendungsfälle der Netzwerkprogrammierung zeigt.

1 Kommentare

 
GN⁺ 2024-01-30
Hacker-News-Kommentare
  • Es ist nützlich, im Netzwerk-Tab des Browsers eine interessante Anfrage zu finden und dann „Als curl kopieren“ zu verwenden. So lässt sich ein curl-Befehl erzeugen, und man kann eine Website nutzen, die diesen Befehl in Request-Code für die gewünschte Sprache umwandelt (curlconverter.com). curl fungiert dabei wie eine „Zwischendarstellung“, die sich in andere Sprachen übersetzen lässt.
  • Dass eine Kommandozeilenschnittstelle ein Flag hat, das den Quellcode des Programms ausgibt, ist eine ausgesprochen coole Funktion. Es ist, als würde man bei einem Auto die Motorhaube öffnen und das Innenleben sehen, sodass man besser versteht, wie es funktioniert, und es bei Bedarf anpassen kann. Man kann es nach Wunsch verändern oder erweitern, was sehr benutzerfreundlich ist.
  • Einer der Gründe, warum Visual-Basic-Makros in Microsoft Office erfolgreich waren, liegt in genau so einer Funktion. Nachdem man in Word, Excel usw. Aufgaben ausgeführt hat, konnte man die erzeugten Makros als Code an die eigenen Bedürfnisse anpassen. Das ist ein simples, aber mächtiges Konzept, und man sieht es auch bei curl.
  • Um curl zu kompilieren, muss man anweisen, gegen libcurl zu linken. Bei gcc verwendet man zum Beispiel die Option -lcurl. Damit kann man die IP-Adresse ausgeben und eine Datei ip_fetcher.c erzeugen; nach dem Kompilieren mit gcc erhält man über die ausführbare Datei die IP-Adresse.
  • Hurl ist eine Open-Source-CLI auf Basis von libcurl, die Klartext zum Testen von HTTP-Anfragen verwendet. Sie nutzt die Stabilität von libcurl und dessen beste Features, einschließlich HTTP/3, und ergänzt Dinge wie das Verketten von Anfragen, das Erfassen und Weiterreichen von Daten aus Antworten sowie das Testen von Antworten (JSONPath, XPath usw.). Für Anfragen an REST-/SOAP-/GraphQL-APIs bietet sie syntaktische Bequemlichkeit, aber im Kern ist es libcurl. Mit der Verbose-Option kann man nach curl-Befehlen grep'en.
  • Ich wünschte, ffmpeg hätte auch so eine Funktion.
  • Daniel Stenberg legt großen Wert auf Details sowie auf die Entwickler- und Nutzererfahrung, und diese Sorgfalt ist beeindruckend.
  • In einem dreistündigen Video, in dem Daniel Stenberg persönlich die meisten curl-Kommandozeilenoptionen erklärt, wird diese Option erwähnt.
  • Im Einreichungstitel sollten zwei Bindestriche (--) verwendet werden; eine Kombination aus Gedankenstrich und Bindestrich (—-) ist nicht korrekt.
  • Ein begeisterter KI-Befürworter vertritt leidenschaftlich die Ansicht, dass diese Funktion mit dem Aufkommen von ChatGPT veraltet sei, weil man nun keine halb fertigen Quines mehr in die curl-Binärdatei einbauen müsse.