Reqwest: Biblioteca de Cliente HTTP em Rust
Reqwest é uma biblioteca de cliente HTTP de alto nível que simplifica o processo de manipulação de requisições HTTP e oferece muitos recursos comumente utilizados:
- Suporte para APIs assíncronas e bloqueantes
- Manipulação de vários tipos de corpos de requisição: texto simples, JSON, formulários codificados por URL, formulários multipart
- Políticas de redirecionamento personalizáveis
- Suporte a proxy HTTP
- Criptografia TLS habilitada por padrão
- Gerenciamento de cookies
Uso Básico
Realizando uma Requisição GET
Para requisições únicas, você pode usar o método conveniente get:
Nota: Se você planeja fazer múltiplas requisições, é melhor criar um
Cliente reutilizá-lo para aproveitar o pool de conexões.
Realizando uma Requisição POST
Você pode definir o corpo da requisição usando o método body():
Dados de Formulário
Enviar dados de formulário é uma necessidade comum. Você pode usar qualquer tipo que possa ser serializado em dados de formulário:
Dados JSON
Você pode facilmente enviar dados JSON usando o método json (requer o recurso json):
Manipulação de Resposta
As respostas podem ser manipuladas de várias formas:
Recursos Avançados
Política de Redirecionamento
Por padrão, o cliente lidará automaticamente com redirecionamentos HTTP, seguindo até 10 saltos. Você pode personalizar este comportamento usando ClientBuilder:
Suporte a Cookies
Você pode habilitar o armazenamento e envio automático de cookies de sessão via ClientBuilder:
Configurações de Proxy
Proxies do sistema são habilitados por padrão, que procurarão configurações de proxy HTTP ou HTTPS em variáveis de ambiente:
HTTP_PROXYouhttp_proxy: proxy para conexões HTTPHTTPS_PROXYouhttps_proxy: proxy para conexões HTTPSALL_PROXYouall_proxy: proxy para ambos os tipos de conexões
Você também pode definir explicitamente um proxy via código:
Configuração TLS
O cliente usa TLS por padrão para conectar-se a destinos HTTPS:
Configurações de Timeout
Você pode configurar durações de timeout para requisições:
Recursos Opcionais
Reqwest oferece vários recursos opcionais que podem ser habilitados ou desabilitados via recursos do Cargo:
http2(habilitado por padrão): suporte para HTTP/2default-tls(habilitado por padrão): fornece suporte TLS para HTTPSrustls-tls: fornece funcionalidade TLS usando rustlsblocking: fornece uma API de cliente bloqueantejson: fornece funcionalidade de serialização e desserialização JSONmultipart: fornece funcionalidade de formulário multipartcookies: fornece suporte a sessão de cookiesgzip,brotli,deflate,zstd: suporte para várias descompressões de corpo de respostasocks: fornece suporte a proxy SOCKS5
API Bloqueante
Quando operações assíncronas não são necessárias, você pode usar a API bloqueante (requer o recurso blocking):