Conversor curl para Go
Converta um comando curl em código Go net/http instantaneamente no seu navegador. O comando permanece no seu dispositivo.
Seu comando curl é convertido para Go localmente no seu navegador e nunca é enviado, mas evite colar tokens ou credenciais reais de produção em qualquer ferramenta.
Precisa de uma versão JavaScript também? Experimente o cURL para Fetch.
Sobre curl para Go
Este conversor de curl para go reescreve um comando curl como Go idiomático usando o pacote padrão net/http, então você coloca uma chamada de API direto em um serviço Go sem configurá-la na mão. Como ferramenta de curl para golang, ele lê flags como -X, -H, -d, --data-raw, --json, -u, -b e -G, monta um http.NewRequest com o método correto, define cada cabeçalho com req.Header.Set e envolve o corpo em um strings.NewReader. O main() gerado lê a resposta com io.ReadAll e imprime o status, pronto para compilar com go run. Use-o ao portar um teste curl para um handler de backend, uma CLI ou um worker. A conversão acontece no seu navegador, então o comando e quaisquer tokens nele são processados localmente no seu dispositivo e nunca saem dele.
Recursos
- Monta uma chamada http.NewRequest com o método inferido a partir das flags do curl
- Define cada valor de -H/--header com req.Header.Set
- Envolve o corpo da requisição em strings.NewReader e adiciona o import strings apenas quando necessário
- Lê a resposta com io.ReadAll e imprime res.Status e o corpo
- Mapeia -u/--user para um cabeçalho de autenticação básica e lida com cookies, user-agent e referer
- Anexa os dados de -G/--get à URL como query string e envia um corpo nil
- Inclui verificações de erro básicas após NewRequest e Do para que o trecho compile
- Copie o resultado ou baixe-o como request.go com um clique
Como usar curl para Go
- Cole seu comando curl na caixa de comando cURL.
- Leia o programa Go net/http gerado no painel de saída.
- Verifique o banner de avisos para quaisquer flags que foram ajustadas ou ignoradas.
- Clique em Copiar, ou baixe o arquivo como request.go e execute-o com go run.
Exemplo
Entrada
curl https://api.example.com/ping
Saída
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.example.com/ping"
req, err := http.NewRequest("GET", url, nil)
if err != nil {
panic(err)
}
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
data, _ := io.ReadAll(res.Body)
fmt.Println(res.Status)
fmt.Println(string(data))
}
Um GET sem corpo passa nil para http.NewRequest e pula o import strings.
Erros comuns e solução de problemas
- O compilador reporta um erro imported and not used "strings". — Esse import só é emitido quando há um corpo de requisição. Se você removeu o corpo na mão, remova também o import strings.
- Você quer um cliente reutilizável com timeouts em vez de http.DefaultClient. — Troque http.DefaultClient pelo seu próprio &http.Client{Timeout: ...}; o trecho usa o cliente padrão para ficar curto.
- O corpo é enviado como texto bruto, mas seu endpoint precisa de JSON. — O cabeçalho Content-Type é herdado do curl. Garanta que o comando original defina um Content-Type JSON ou use --json para que o cabeçalho esteja presente.
Perguntas frequentes
- Como converto um comando curl para Go?
- Cole o comando curl na caixa de entrada e o conversor renderiza um programa Go net/http completo à direita que você pode copiar ou baixar como request.go.
- O código Go gerado usa a biblioteca padrão?
- Sim. Ele usa net/http, io, fmt e strings da biblioteca padrão apenas, então não há nada extra para fazer go get antes de executá-lo.
- Como o corpo da requisição é representado em Go?
- O corpo é envolvido em strings.NewReader e passado para http.NewRequest, e o import strings é adicionado automaticamente apenas quando um corpo está presente.
- Posso rodar a saída diretamente com go run?
- Sim. O conversor emite um package main completo com uma função main(), tratamento de erros básico e impressão da resposta, então go run request.go funciona como está.
- Meu comando curl é enviado a um servidor quando eu o converto para Go?
- Não. A conversão de curl para go roda inteiramente no seu navegador, então o comando e quaisquer segredos nele permanecem no seu dispositivo.
Ferramentas relacionadas
- curl para Python — Converta um comando curl em um script Python com a biblioteca requests.
- curl para PHP — Converta um comando curl em um script PHP com a extensão cURL.
- curl para Node.js — Converta um comando curl em uma requisição Node.js com axios.
- cURL para Fetch — Converta um comando curl em uma chamada fetch() de JavaScript.
- Cliente de API — Envie requisições HTTP, monte cabeçalhos e parâmetros e inspecione respostas; salva as últimas 25.
- Analisador de URL — Decomponha uma URL em suas partes e liste os parâmetros de consulta.
Todas as ferramentas de ArrayKit