Converter curl para Go
Converta comandos curl para código Go utilizando o pacote padrão net/http. O curl2code é executado inteiramente no seu navegador através de WebAssembly — os seus dados permanecem privados. Se preferir uma linguagem de nível superior, experimente o nosso conversor de curl para Python. Para programação de sistemas, veja curl para Rust. Abaixo encontram-se exemplos de Go prontos a usar.
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 net/http do Go?
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 predefinição e fornece pooling de ligações, timeouts e configuração TLS nativamente. É a única biblioteca que o curl2code usa para Go — não são necessários pacotes de terceiros.
net/http vs clientes HTTP de terceiros para Go — qual usar?
O net/http do Go é suficientemente poderoso para a maioria dos casos de utilização — ao contrário de muitas linguagens, a biblioteca padrão está pronta para produção. Opções de terceiros como o resty adicionam conveniência (tentativas automáticas, encadeamento), mas adicionam dependências. Para uma abordagem semelhante com tudo incluído, consulte o nosso conversor de curl para Rust (reqwest) ou curl para Python.
Como gerir a 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 deteta -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 ficheiros com CreateFormFile. Defina o Content-Type para writer.FormDataContentType(). O curl2code gere todas as conversões de flags -F.
Como gerir erros HTTP em Go?
O Go usa retornos de erro explícitos: verifique sempre if err != nil após http.Do(req). Em seguida, verifique resp.StatusCode para erros ao nível do HTTP. Use sempre defer resp.Body.Close() para evitar fugas de recursos. Esta gestão de erros explícita é um padrão central do Go — sem exceções, sem try/catch.
Como fazer pedidos HTTP concorrentes em Go?
Use goroutines com sync.WaitGroup ou canais. Inicie cada pedido numa goroutine com go func() { ... }(). Para concorrência limitada, use um canal de semáforo. As goroutines do Go são leves — pode facilmente gerir milhares de pedidos concorrentes. Para padrões de concorrência semelhantes, consulte curl para Rust.
Como definir timeouts no cliente HTTP do Go?
Defina client.Timeout para o prazo global do pedido. Para um controlo detalhado, 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 o --max-time mapeia para client.Timeout.
Como configurar um proxy em Go?
Defina Transport.Proxy para http.ProxyURL(proxyUrl) num http.Transport personalizado. O Go também respeita as variáveis de ambiente HTTP_PROXY e HTTPS_PROXY por predefinição através de http.ProxyFromEnvironment. O curl2code converte as flags -x e --proxy para a configuração de proxy adequada em Go.
Como enviar um pedido POST com um 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 utiliza http.Post(url, "application/json", bytes.NewBuffer(jsonData)). O curl2code deteta automaticamente as flags -d/--data com conteúdo JSON e define o cabeçalho Content-Type apropriado no código net/http.
Como adicionar autorização com token Bearer em Go?
Passe curl -H "Authorization: Bearer YOUR_TOKEN" URL para o curl2code e este gera código net/http com o cabeçalho de autenticação: req.Header.Set("Authorization", "Bearer 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 Go?
O curl2code converte curl -H "Content-Type: application/json" URL para código net/http com o cabeçalho correto: req.Header.Set("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 net/http 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.