cURL(Client URL) est depuis des décennies le client HTTP en ligne de commande de référence. Il est largement utilisé par les développeurs et les administrateurs dans tous les aspects du développement web, tels que les tests d’API, la récupération de pages web et même le transfert de fichiers. Dans le domainedu Scraping web, nous utilisons principalement cURL pour tester les requêtes HTTP.
REST (Representational State Transfer) est une norme utilisée pour créer une API (interface de programmation d’application). Avec une API REST, un serveur est configuré pour traiter quatre types de requêtes de base :GET,POST,PUTetDELETE. Chacune de ces méthodes est utilisée pour interagir avec un serveur web. Nous y reviendrons plus en détail tout au long de cet article.
Pour commencer
Installation
cURL est préinstallé sur la plupart des principaux systèmes d’exploitation actuels. Il est incontournable sous Linux depuis de nombreuses années, mais macOS et Windows l’incluent désormais également par défaut. Vous pouvez vérifier votre installation de cURL à l’aide de la commande suivante.
curl --version
Si cURL est correctement installé, vous devriez obtenir une réponse similaire à celle-ci. Plus important encore, la commande --version doit afficher un numéro de version. Ci-dessous, notre numéro de version est curl 7.81.0. Le reste de la sortie est spécifique à la version et au système d’exploitation.
curl 7.81.0 (x86_64-pc-linux-gnu) libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.18
Date de publication : 05/01/2022
Protocoles : dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Fonctionnalités : alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-Proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets zstd
Si, pour une raison quelconque, vous n’avez pas installé cURL, vous pouvez trouver une version compatible avec votre système d’exploitation sur leur page de téléchargementici.
<!–
- Comment installer curl : soyez concis, ajoutez un lien vers les instructions spécifiques à votre système d’exploitation
–>
Comment utiliser cURL
Effectuer une requête GET
La requête HTTP la plus courante est la requête GET. Nous utilisons GET pour obtenir des informations. Lorsque vous récupérez une page Web, votre navigateur effectue une requête GET en arrière-plan. Avec cURL, nous utilisons le drapeau GET pour en effectuer une. L’exemple ci-dessous envoie une requête GET à https://jsonplaceholder.typicode.com/posts.
curl -X GET https://jsonplaceholder.typicode.com/posts
Lorsque nous effectuons cette requête, nous obtenons les publications en réponse. Ci-dessous, nous avons juste un extrait de la réponse.
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipitnsuscipit recusandae consequuntur expedita et cumnreprehenderit molestiae ut ut quas totamnnostrum rerum est autem sunt rem eveniet architecto"
},
{
« userId » : 1,
« id » : 2,
« title » : « qui est esse »,
« body » : « est rerum tempore vitaensequi sint nihil reprehenderit dolor beatae ea dolores nequenfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendisnqui aperiam non debitis possimus qui neque nisi nulla »
},
{
"userId": 1,
"id": 3,
"title": "ea molestias quasi exercitationem repellat qui ipsa sit aut",
"body": "et iusto sed quo iurenvoluptatem occaecati omnis eligendi aut adnvoluptatem doloribus vel accusantium quis pariaturnmolestiae porro eius odio et labore et velit aut"
},
{
« userId » : 1,
« id » : 4,
« title » : « eum et est occaecati »,
« corps » : « ullam et saepe reiciendis voluptatem adipiscinsit amet autem assumenda provident rerum culpanquis hic commodi nesciunt rem tenetur doloremque ipsam iurenquis sunt voluptatem rerum illo velit »
},
{
« userId » : 1,
« id » : 5,
« title » : « nesciunt quas odio »,
« body » : « repudiandae veniam quaerat sunt sednalias aut fugiat sit autem sed estnvoluptatem omnis possimus esse voluptatibus quisnest aut tenetur dolor neque »
},
<!–
- Qu’est-ce qu’une requête GET ?
–>
Effectuer une requête POST
Nous utilisons une requête POST lorsque nous voulons envoyer des informations à un serveur afin qu’elles soient enregistrées dans une base de données. Les publications sur les réseaux sociaux en sont l’exemple le plus courant. L’exemple ci-dessous envoie une requête POST pour créer une nouvelle publication à l’aide de l’API.
curl -X POST https://jsonplaceholder.typicode.com/posts
-H "Content-Type: application/json"
-d '{
"title": "foo",
"body": "bar",
"userId": 1
}'
Après notre requête, nous recevons l’objet de la publication en tant que réponse.
{
"title": "foo",
"body": "bar",
"userId": 1,
"id": 101
}
Si vous souhaitez en savoir plus sur l’envoi de requêtesPOSTapprofondies, consultezce guide.
Effectuer une requête PUT
Comme vous venez de l’apprendre, les requêtes POST sont utilisées pour créer un objet dans une base de données. Parfois, nous souhaitons modifier un objet qui existe déjà dans une base de données. Pour modifier un objet existant, nous utilisons une requête PUT. L’exemple ci-dessous met à jour le corps de notre publication précédente de bar à bar mis à jour.
curl -X PUT https://jsonplaceholder.typicode.com/posts/1
-H "Content-Type: application/json"
-d '{
"id": 1,
"title": "foo",
"body": "updated bar",
"userId": 1
}'
Lorsque vous l’exécutez, vous recevez la réponse suivante. Comme vous pouvez le constater, le corps de notre publication a été mis à jour.
{
"id": 1,
"title": "foo",
"body": "updated bar",
"userId": 1
}
Effectuer une requête DELETE
À ce stade, les requêtesDELETE devraient être assez explicites. La requête DELETE est utilisée pour supprimer un objet existant d’une base de données à l’aide d’un identifiant unique. Dans ce cas, notre identifiant (id) est 1, soit le message numéro un. Le code ci-dessous supprime le message que nous avons créé précédemment.
curl -X DELETE https://jsonplaceholder.typicode.com/posts/1
Comme vous pouvez le constater, notre réponse est simplement un objet JSON vide. Le message a été supprimé.
{}
cURL avec Web Unlocker

Lorsque vous utilisez cURL avecWeb Unlocker, vous pouvez effectuer des requêtes HTTP comme vous le feriez avec cURL seul. Cependant, Web Unlocker vous offre la puissance d’un Proxy.
Avec Web Unlocker, vous bénéficiez du géociblage et de la Résolution de CAPTCHA provenant de certains des meilleurs proxys au monde. Mieux encore, ces proxys sont gérés pour vous. Il vous suffit de connecter le Proxy et de poursuivre votre journée comme d’habitude.
Une fois Web Unlocker configuré, veillez à enregistrer votre nom d’utilisateur, votre nom de zone et votre mot de passe. Vous en aurez besoin pour authentifier votre connexion. Dans l’exemple ci-dessous, nous avons configuré notre connexion pour utiliser un Proxy basé aux États-Unis.
curl -i --proxy brd.superproxy.io:33335 --proxy-user brd-customer-<VOTRE_NOM_D'UTILISATEUR>-zone-<VOTRE_NOM_DE_ZONE>-country-us:<VOTRE_MOT_DE_PASSE> -k "https://geo.brdtest.com/mygeo.json"
-i: indique à cURL que nous voulons que les en-têtes soient inclus dans notre réponse. Ceci est utile à des fins de débogage.--Proxy brd.superproxy.io:33335 --Proxy-utilisateur brd-customer-<VOTRE_NOM_D'UTILISATEUR>-zone-<VOTRE_NOM_DE_ZONE>-country-us:<VOTRE_MOT_DE_PASSE>--proxy brd.superproxy.io:33335: indique à cURL que nous voulons utiliser un Proxy situé à l’adressebrd.superproxy.io:33335.--proxy-user brd-customer-<VOTRE_NOM_D'UTILISATEUR>-zone-<VOTRE_NOM_DE_ZONE>-country-us:<VOTRE_MOT_DE_PASSE>: ceci représente notre chaîne d’authentification. La chaîne d’authentification est structurée comme suit :<NOM d'utilisateur>:<MOT de passe>. Avec Web Unlocker, votre nom d’utilisateur complet comprend tous les éléments suivants :brd-customer-<VOTRE_NOM_D'UTILISATEUR>-zone-<VOTRE_NOM_DE_ZONE>-country-us.
kest utilisé pour indiquer à cURL que nous voulons contourner la certification SSL. Si vous souhaitez utiliser Web Unlocker à long terme, vous pouvez télécharger et installer notre certificat SSLici. Cela permettra à votre machine d’auto-certifier la connexion.
Vous pouvez consulter notre exemple de réponse ci-dessous. Comme vous pouvez le constater, notre emplacement apparaît dans le New Jersey.
{"country":"US","asn":{"asnum":20473,"org_name":"AS-VULTR"},"geo":{"city":"Piscataway","region":"NJ","region_name":"New Jersey","postal_code":"08854","latitude":40.5511,"longitude":-74.4606,"tz":"America/New_York","lum_city":"piscataway","lum_region":"nj"}}
Si vous souhaitez en savoir plus sur Web Unlocker, consultez notreAPI Playground. C’est un excellent endroit pour expérimenter et en apprendre davantage sur la création de requêtes API à l’aide de nombreux langages et bibliothèques HTTP différents. Vous pouvez en savoir plus sur l’utilisation de cURL avec des Proxiesici.
Que pouvez-vous faire avec cURL ?
Une fois que vous maîtrisez cURL et HTTP, vous pouvez utiliser HTTP pratiquement partout. Vous pouvez utiliser des outils GUI tels quePostmanetInsomniapour tester les API en général.
Avec Python, vous pouvez utiliserRequestsou même continuer à utilisercURL dans Python. Avec JavaScript, vous pouvez utiliserNode-FetchouAxiospour automatiser vos requêtes HTTP.
Si vous souhaitez vous en tenir aux outils en ligne de commande, il en existe également toute une série. Jetez un œil à HTTPie et wget. Ces deux outils sont d’excellents utilitaires en ligne de commande et maîtrisent très bien le protocole HTTP.
Conclusion
En matière de clients HTTP, cURL est la norme en matière de ligne de commande depuis des décennies et cela ne devrait pas changer de sitôt. Que vous soyez développeur ou administrateur système, vous disposez désormais des compétences nécessaires pour utiliser cURL de manière basique et comprenez bien le fonctionnement du protocole HTTP. Vous pouvez mêmetélécharger des fichierset définirdes en-têtes personnalisésà l’aide de cURL. Maintenant que vous savez comment utiliser Web Unlocker avec cet outil, vous pouvez être vraiment efficace avec HTTP, quel que soit votre domaine de travail. Si vous êtes un développeur en herbe, apprenez à utiliser HTTP dans le langage de votre choix.