Reqwest: Rust HTTP-Client-Bibliothek
Reqwest ist eine hochwertige HTTP-Client-Bibliothek, die die HTTP-Anfrageverarbeitung vereinfacht und viele häufig verwendete Funktionen bereitstellt:
- Unterstützung für asynchrone und blockierende APIs
- Verarbeitung verschiedener Arten von Anfragekörpern: Klartext, JSON, URL-kodierte Formulare, Multipart-Formulare
- Anpassbare Weiterleitungsrichtlinien
- HTTP-Proxy-Unterstützung
- Standardmäßig aktivierte TLS-Verschlüsselung
- Cookie-Verwaltung
Grundlegende Verwendung
Eine GET-Anfrage stellen
Für einzelne Anfragen können Sie die praktische Methode get verwenden:
Hinweis: Wenn Sie mehrere Anfragen planen, ist es besser, einen
Clientzu erstellen und ihn wiederzuverwenden, um von der Verbindungspooling zu profitieren.
Eine POST-Anfrage stellen
Sie können den Anfragekörper mit der Methode body() festlegen:
Formulardaten
Das Senden von Formulardaten ist eine häufige Anforderung. Sie können jeden Typ verwenden, der in Formulardaten serialisiert werden kann:
JSON-Daten
Sie können JSON-Daten einfach mit der Methode json senden (erfordert das json-Feature):
Antwortverarbeitung
Antworten können auf verschiedene Arten verarbeitet werden:
Erweiterte Funktionen
Weiterleitungsrichtlinie
Standardmäßig verarbeitet der Client HTTP-Weiterleitungen automatisch und folgt bis zu 10 Sprüngen. Sie können dieses Verhalten mit ClientBuilder anpassen:
Cookie-Unterstützung
Sie können die automatische Speicherung und das Senden von Sitzungs-Cookies über ClientBuilder aktivieren:
Proxy-Einstellungen
Systemproxys sind standardmäßig aktiviert, die nach HTTP- oder HTTPS-Proxy-Einstellungen in Umgebungsvariablen suchen:
HTTP_PROXYoderhttp_proxy: Proxy für HTTP-VerbindungenHTTPS_PROXYoderhttps_proxy: Proxy für HTTPS-VerbindungenALL_PROXYoderall_proxy: Proxy für beide Arten von Verbindungen
Sie können auch explizit einen Proxy über Code festlegen:
TLS-Konfiguration
Der Client verwendet standardmäßig TLS, um sich mit HTTPS-Zielen zu verbinden:
Timeout-Einstellungen
Sie können Timeout-Dauern für Anfragen konfigurieren:
Optionale Funktionen
Reqwest bietet verschiedene optionale Funktionen, die über Cargo-Features aktiviert oder deaktiviert werden können:
http2(standardmäßig aktiviert): Unterstützung für HTTP/2default-tls(standardmäßig aktiviert): bietet TLS-Unterstützung für HTTPSrustls-tls: bietet TLS-Funktionalität mit rustlsblocking: bietet eine blockierende Client-APIjson: bietet JSON-Serialisierungs- und Deserialisierungsfunktionalitätmultipart: bietet Multipart-Formularfunktionalitätcookies: bietet Cookie-Sitzungsunterstützunggzip,brotli,deflate,zstd: Unterstützung für verschiedene Antwortkörper-Dekompressionsocks: bietet SOCKS5-Proxy-Unterstützung
Blockierende API
Wenn asynchrone Operationen nicht benötigt werden, können Sie die blockierende API verwenden (erfordert das blocking-Feature):