Reqwest: Biblioteca Cliente HTTP de Rust
Reqwest es una biblioteca cliente HTTP de alto nivel que simplifica el proceso de manejo de solicitudes HTTP y proporciona muchas funciones de uso común:
- Soporte para APIs asíncronas y bloqueantes
- Manejo de varios tipos de cuerpos de solicitud: texto plano, JSON, formularios codificados en URL, formularios multiparte
- Políticas de redirección personalizables
- Soporte para proxy HTTP
- Cifrado TLS habilitado por defecto
- Gestión de cookies
Uso Básico
Realizando una Solicitud GET
Para solicitudes individuales, puedes usar el método conveniente get:
Nota: Si planeas realizar múltiples solicitudes, es mejor crear un
Clienty reutilizarlo para aprovechar el agrupamiento de conexiones.
Realizando una Solicitud POST
Puedes establecer el cuerpo de la solicitud usando el método body():
Datos de Formulario
Enviar datos de formulario es un requisito común. Puedes usar cualquier tipo que pueda serializarse en datos de formulario:
Datos JSON
Puedes enviar fácilmente datos JSON usando el método json (requiere la función json):
Manejo de Respuestas
Las respuestas pueden manejarse de varias formas:
Características Avanzadas
Política de Redirección
Por defecto, el cliente manejará automáticamente las redirecciones HTTP, siguiendo hasta 10 saltos. Puedes personalizar este comportamiento usando ClientBuilder:
Soporte de Cookies
Puedes habilitar el almacenamiento y envío automático de cookies de sesión a través de ClientBuilder:
Configuración de Proxy
Los proxies del sistema están habilitados por defecto, que buscarán configuraciones de proxy HTTP o HTTPS en variables de entorno:
HTTP_PROXYohttp_proxy: proxy para conexiones HTTPHTTPS_PROXYohttps_proxy: proxy para conexiones HTTPSALL_PROXYoall_proxy: proxy para ambos tipos de conexiones
También puedes establecer explícitamente un proxy mediante código:
Configuración TLS
El cliente usa TLS por defecto para conectarse a destinos HTTPS:
Configuración de Tiempo de Espera
Puedes configurar duraciones de tiempo de espera para las solicitudes:
Características Opcionales
Reqwest proporciona varias características opcionales que pueden habilitarse o deshabilitarse a través de funciones de Cargo:
http2(habilitado por defecto): soporte para HTTP/2default-tls(habilitado por defecto): proporciona soporte TLS para HTTPSrustls-tls: proporciona funcionalidad TLS usando rustlsblocking: proporciona una API de cliente bloqueantejson: proporciona funcionalidad de serialización y deserialización JSONmultipart: proporciona funcionalidad de formulario multipartecookies: proporciona soporte de sesión de cookiesgzip,brotli,deflate,zstd: soporte para varias descompresiones de cuerpo de respuestasocks: proporciona soporte para proxy SOCKS5
API Bloqueante
Cuando no se necesitan operaciones asíncronas, puedes usar la API bloqueante (requiere la función blocking):