Reqwest : Bibliothèque cliente HTTP Rust
Reqwest est une bibliothèque cliente HTTP de haut niveau qui simplifie le traitement des requêtes HTTP et fournit de nombreuses fonctionnalités couramment utilisées :
- Prise en charge des API asynchrones et bloquantes
- Gestion de différents types de corps de requête : texte brut, JSON, formulaires encodés en URL, formulaires multipart
- Politiques de redirection personnalisables
- Prise en charge des proxys HTTP
- Chiffrement TLS activé par défaut
- Gestion des cookies
Utilisation de base
Effectuer une requête GET
Pour des requêtes uniques, vous pouvez utiliser la méthode pratique get :
Remarque : Si vous prévoyez d'effectuer plusieurs requêtes, il est préférable de créer un
Clientet de le réutiliser pour bénéficier du regroupement de connexions.
Effectuer une requête POST
Vous pouvez définir le corps de la requête en utilisant la méthode body() :
Données de formulaire
L'envoi de données de formulaire est une exigence courante. Vous pouvez utiliser tout type pouvant être sérialisé en données de formulaire :
Données JSON
Vous pouvez facilement envoyer des données JSON en utilisant la méthode json (nécessite la fonctionnalité json) :
Traitement des réponses
Les réponses peuvent être traitées de différentes manières :
Fonctionnalités avancées
Politique de redirection
Par défaut, le client gérera automatiquement les redirections HTTP, en suivant jusqu'à 10 sauts. Vous pouvez personnaliser ce comportement en utilisant ClientBuilder :
Prise en charge des cookies
Vous pouvez activer le stockage et l'envoi automatiques des cookies de session via ClientBuilder :
Configuration du proxy
Les proxys système sont activés par défaut, ce qui recherchera les paramètres de proxy HTTP ou HTTPS dans les variables d'environnement :
HTTP_PROXYouhttp_proxy: proxy pour les connexions HTTPHTTPS_PROXYouhttps_proxy: proxy pour les connexions HTTPSALL_PROXYouall_proxy: proxy pour les deux types de connexions
Vous pouvez également définir explicitement un proxy via le code :
Configuration TLS
Le client utilise TLS par défaut pour se connecter aux cibles HTTPS :
Paramètres de délai d'attente
Vous pouvez configurer les durées de délai d'attente pour les requêtes :
Fonctionnalités optionnelles
Reqwest fournit diverses fonctionnalités optionnelles qui peuvent être activées ou désactivées via les fonctionnalités Cargo :
http2(activé par défaut) : prise en charge de HTTP/2default-tls(activé par défaut) : fournit la prise en charge TLS pour HTTPSrustls-tls: fournit la fonctionnalité TLS en utilisant rustlsblocking: fournit une API cliente bloquantejson: fournit la fonctionnalité de sérialisation et désérialisation JSONmultipart: fournit la fonctionnalité de formulaire multipartcookies: fournit la prise en charge des sessions de cookiesgzip,brotli,deflate,zstd: prise en charge de diverses décompressions de corps de réponsesocks: fournit la prise en charge du proxy SOCKS5
API bloquante
Lorsque les opérations asynchrones ne sont pas nécessaires, vous pouvez utiliser l'API bloquante (nécessite la fonctionnalité blocking) :