Converter curl para Go

Converta comandos curl para código Go usando o pacote padrão net/http. O curl2code é executado inteiramente no seu navegador via WebAssembly — seus dados permanecem privados. Se você prefere uma linguagem de nível mais alto, tente nosso conversor de curl para Python. Para programação de sistemas, veja curl para Rust. Abaixo estão exemplos de Go prontos para usar.

Como copiar o curl do seu navegador

  1. 1

    Abra o DevTools

    Pressione F12 ou Ctrl+Shift+I para abrir as ferramentas de desenvolvedor do seu navegador.

  2. 2

    Vá para a aba Network

    Clique na aba Network e realize a ação que dispara a requisição HTTP.

  3. 3

    Copiar como cURL

    Clique com o botão direito na requisição → CopyCopy as cURL. Depois cole acima.

Perguntas Frequentes

O que é o Go net/http?

O net/http do Go é um cliente e servidor HTTP de nível de produção incluído na biblioteca padrão. Não requer dependências externas, suporta HTTP/2 por padrão e fornece pooling de conexões, timeouts e configuração TLS nativamente. É a única biblioteca que o curl2code usa para Go — sem necessidade de pacotes de terceiros.

net/http vs clientes HTTP de terceiros em Go — qual usar?

O net/http do Go é poderoso o suficiente para a maioria dos casos de uso — ao contrário de muitas linguagens, a biblioteca padrão é pronta para produção. Opções de terceiros como resty adicionam conveniência (retries automáticos, encadeamento), mas adicionam dependências. Para uma abordagem semelhante com tudo incluso, veja nosso conversor de curl para Rust (reqwest) ou curl para Python.

Como lidar com autenticação em Go?

Defina o cabeçalho Authorization com req.Header.Set("Authorization", "Bearer "+token). Para autenticação Basic, use req.SetBasicAuth(user, pass), que define o cabeçalho automaticamente. O curl2code detecta -u e -H 'Authorization: ...' e gera o código Go correto.

Como enviar dados de formulário multipart em Go?

Use o pacote mime/multipart: crie um writer com multipart.NewWriter(body), adicione campos com CreateFormField e arquivos com CreateFormFile. Defina o Content-Type como writer.FormDataContentType(). O curl2code lida com todas as conversões de flags -F.

Como lidar com erros HTTP em Go?

O Go usa retornos de erro explícitos: sempre verifique if err != nil após http.Do(req). Em seguida, verifique resp.StatusCode para erros de nível HTTP. Sempre use defer resp.Body.Close() para evitar vazamento de recursos. Este tratamento de erro explícito é um padrão central do Go — sem exceções, sem try/catch.

Como fazer requisições HTTP concorrentes em Go?

Use goroutines com sync.WaitGroup ou channels. Inicie cada requisição em uma goroutine com go func() { ... }(). Para concorrência limitada, use um channel de semáforo. As goroutines do Go são leves — você pode lidar facilmente com milhares de requisições concorrentes. Para padrões de concorrência semelhantes, veja curl para Rust.

Como definir timeouts no cliente HTTP do Go?

Defina client.Timeout para o prazo geral da requisição. Para controle granular, use context.WithTimeout ou context.WithDeadline e passe o contexto para http.NewRequestWithContext. O --connect-timeout do curl mapeia para o timeout de Transport.DialContext, e --max-time mapeia para client.Timeout.

Como configurar um proxy em Go?

Defina Transport.Proxy como http.ProxyURL(proxyUrl) em um http.Transport personalizado. O Go também respeita as variáveis de ambiente HTTP_PROXY e HTTPS_PROXY por padrão via http.ProxyFromEnvironment. O curl2code converte as flags -x e --proxy para a configuração de proxy apropriada em Go.

Como enviar uma requisição POST com corpo JSON em Go?

Converta um comando curl POST como curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL para Go usando o curl2code. O código gerado usa http.Post(url, "application/json", bytes.NewBuffer(jsonData)). O curl2code detecta automaticamente as flags -d/--data com conteúdo JSON e define o cabeçalho Content-Type apropriado no código do net/http.

Como adicionar autorização com token Bearer em Go?

Passe curl -H "Authorization: Bearer YOUR_TOKEN" URL para o curl2code e ele gerará o código do net/http com o cabeçalho de autenticação: req.Header.Set("Authorization", "Bearer YOUR_TOKEN"). O curl2code detecta tokens Bearer tanto de flags -H "Authorization: Bearer ..." quanto de --oauth2-bearer. Para Basic auth, use -u user:pass.

Como definir o cabeçalho Content-Type em Go?

O curl2code converte curl -H "Content-Type: application/json" URL para o código do net/http com o cabeçalho correto: req.Header.Set("Content-Type", "application/json"). Para dados -d, o curl define por padrão application/x-www-form-urlencoded; para uploads de formulário com -F, ele usa multipart/form-data. O curl2code mapeia cada um para a API correta do net/http.

Links úteis

Guias do curl

Converter curl para outras linguagens