Converter curl para Rust
O curl2code converte comandos curl para código Rust utilizando a crate reqwest. A conversão é executada no seu navegador através de WebAssembly para total privacidade. Para Go, consulte o nosso conversor de curl para Go. Para C, veja curl para C. Abaixo encontram-se exemplos práticos de Rust com async/await.
Como copiar o curl do seu navegador
- 1
Abrir as DevTools
Prima F12 ou Ctrl+Shift+I para abrir as ferramentas de programador do seu navegador.
- 2
Ir para o separador Network
Clique no separador Network e realize a ação que despoleta o pedido HTTP.
- 3
Copiar como cURL
Clique com o botão direito no pedido → Copy → Copy as cURL. Depois cole-o acima.
Perguntas Frequentes
O que é o reqwest do Rust?
O reqwest é o cliente HTTP mais popular para Rust, construído sobre o hyper. Fornece APIs síncronas (blocking) e assíncronas, serialização automática de JSON via serde, TLS, gestão de cookies e suporte para proxy. Adicione com cargo add reqwest --features json. É a biblioteca predefinida que o curl2code usa para conversões em Rust.
reqwest vs hyper vs ureq — qual devo usar?
O reqwest é a escolha ideal para a maioria dos projetos — de alto nível, rico em funcionalidades e assíncrono. O hyper é de nível mais baixo e oferece controlo máximo (o reqwest é construído sobre ele). O ureq é um cliente minimalista, apenas síncrono, sem dependência de runtime assíncrono. Para uma abordagem de biblioteca padrão semelhante, consulte curl para Go ou curl para C.
Como gerir a autenticação em Rust?
Para Bearer: client.get(url).bearer_auth(token). Para Basic: client.get(url).basic_auth(user, Some(pass)). Ou defina os cabeçalhos manualmente com .header("Authorization", value). O curl2code converte as flags -u e -H 'Authorization: ...' para os métodos reqwest adequados.
Como enviar dados de formulário multipart em Rust?
Use reqwest::multipart::Form: crie com Form::new(), adicione campos de texto com .text("key", "value") e ficheiros com .file("field", path).await?. Passe para client.post(url).multipart(form). O curl2code gere as flags -F para o multipart do reqwest.
Como gerir erros HTTP em Rust?
O reqwest devolve Result que encapsula Response em caso de sucesso ou reqwest::Error em caso de falha — use o operador ? para propagação. Verifique response.status().is_success() ou chame response.error_for_status()? que converte códigos não-2xx em erros. O sistema de tipos do Rust garante que todos os caminhos de erro são explicitamente tratados em tempo de compilação.
De qual runtime assíncrono o reqwest precisa?
O reqwest requer o runtime tokio por predefinição. Anote o seu main com #[tokio::main]. Para utilização síncrona sem um runtime assíncrono, ative a funcionalidade blocking e use reqwest::blocking::Client. O curl2code gera código assíncrono com tokio por predefinição. Para outro ecossistema assíncrono, consulte curl para Go (goroutines).
Como definir timeouts no reqwest do Rust?
Defina no cliente: Client::builder().timeout(Duration::from_secs(30)).connect_timeout(Duration::from_secs(10)).build()?. Por pedido: client.get(url).timeout(Duration::from_secs(5)). Estes mapeiam para as flags --max-time e --connect-timeout do curl.
Como usar um proxy com o reqwest?
Defina um proxy no construtor do cliente: Client::builder().proxy(Proxy::https("http://proxy:8080")?).build()?. Suporta proxies HTTP, HTTPS e SOCKS5. O reqwest também respeita as variáveis de ambiente HTTP_PROXY e HTTPS_PROXY por predefinição. O curl2code converte as flags -x para a configuração de proxy.
Como enviar um pedido POST com um corpo JSON em Rust?
Converta um comando curl POST como curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL para Rust usando o curl2code. O código gerado utiliza client.post(url).json(&data).send().await?. O curl2code deteta automaticamente as flags -d/--data com conteúdo JSON e define o cabeçalho Content-Type apropriado no código reqwest.
Como adicionar autorização com token Bearer em Rust?
Passe curl -H "Authorization: Bearer YOUR_TOKEN" URL para o curl2code e este gera código reqwest com o cabeçalho de autenticação: .bearer_auth("YOUR_TOKEN"). O curl2code deteta tokens Bearer tanto de flags -H "Authorization: Bearer ..." como de --oauth2-bearer. Para Basic auth, utilize -u user:pass.
Como definir o cabeçalho Content-Type em Rust?
O curl2code converte curl -H "Content-Type: application/json" URL para código reqwest com o cabeçalho correto: .header("Content-Type", "application/json"). Para dados -d, o curl assume por defeito application/x-www-form-urlencoded; para envios de formulários -F, utiliza multipart/form-data. O curl2code mapeia cada um para a API reqwest correta.
Links Úteis
Guias do curl
Códigos de erro do curl
Consulte qualquer código de saída do curl — causas, correções e dicas de depuração.
Transferir ficheiros com curl
Guarde ficheiros com -o, -O, siga redirecionamentos, retome transferências e mais.
SSL, TLS e proxy
Configure certificados, versões TLS, proxies HTTP/SOCKS e DNS personalizado.