Table des matières
Faire un programme en C sans écire ce programme avec l'aide de curl et libcurl
Vu via Guillaume Valadon :
L'option –libcurl
de curl
permet de créer un fichier en C qui pourra repter la commande utilisée
Curl
est le puissant utilitaire en ligne de commande qui vous permet de transférer des données vers ou depuis un serveur ou une URL.
--> /usr/bin/curl --version curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 Release-Date: 2018-01-24 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL
cURL
est un outil en ligne de commande qui parle un certain nombre de protocoles pour le transfert de fichiers, y compris HTTP, HTPPS, FTP, Secure Copy (SCP), Telnet, et d'autres. Mais en plus de converser avec les terminaux sur Internet depuis la ligne de commande, vous pouvez aussi écrire des programmes simples ou complexes en utilisant libcurl
pour automatiser les tâches des protocoles de la couche application. Cettte page traite de notes sur l'outil en ligne de commande cURL
, puis vous montre comment construire un progamme en C en utilisant libcurl
.
Enregistrer un fichier avec un nom de fichier par défaut
Chaque fichier qui est servi sur Internet a un nom de fichier. Pour utiliser le même nom de fichier que le nom de fichier téléchargé, utilisez le -O
.
Obtenir du code C depuis une requête curl
avec –libcurl
source : https://curl.haxx.se/docs/manpage.html#--libcurl
«libcurl
est une bibliothèque de fonctions qui sont fournies avec une API C, pour les applications écrites en C. Vous pouvez facilement l'utiliser à partir de C++ aussi, avec seulement quelques considérations (voir libcurl pour les programmeurs C++. Pour les autres langages, il existe des “bindings” qui fonctionnent comme des couches intermédiaires entrelibcurl
et les fonctions correspondantes pour le langage particulier que vous choississez » source Everything curl
Débogage
Souvent,avec curl
sur un site, vous remarquerez que le site semblet répondre de la même façon à vos demandes de boucles qu'à vos requêtes du navigateur.
Vous devez commencer à rendre vos demandes de boucles plus semblables à celles de votre les requêtes du navigateur :
- Utilisez l'option
–trace-ascii
pour stocker les logs détaillés des requêtes
pour une analyse plus facile et une meilleure compréhension
- Assurez-vous de vérifier et d'utiliser les cookies lorsque c'est nécessaire (les deux lisant avec
-b
et en écrivant avec-c
)
Sources
- Learn to Use CURL Command in Linux With These Examples https://linuxhandbook.com/curl-command-examples
- using libcurl https://curl.haxx.se/libcurl/using
- libcurl - small example snippets https://curl.haxx.se/libcurl/c/example.html
Aller plus loin
- a tool to convert curl command lines to Python https://ryan.govost.es/http-translator
- You cannot cURL under pressure https://blog.benjojo.co.uk/post/you-cant-curl-under-pressure