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. 1

    Abrir as DevTools

    Prima F12 ou Ctrl+Shift+I para abrir as ferramentas de programador do seu navegador.

  2. 2

    Ir para o separador Network

    Clique no separador Network e realize a ação que despoleta o pedido HTTP.

  3. 3

    Copiar como cURL

    Clique com o botão direito no pedido → CopyCopy 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

Converter curl para Outras Linguagens