Converti curl in Go

Converti i comandi curl in codice Go utilizzando il pacchetto standard net/http. curl2code viene eseguito interamente nel tuo browser tramite WebAssembly — i tuoi dati rimangono privati. Se preferisci un linguaggio di alto livello, prova il nostro convertitore da curl a Python. Per la programmazione di sistema, vedi da curl a Rust. Di seguito sono riportati esempi Go pronti all'uso.

Come copiare curl dal tuo browser

  1. 1

    Apri DevTools

    Premi F12 o Ctrl+Shift+I per aprire gli strumenti per sviluppatori del browser.

  2. 2

    Vai alla scheda Network

    Fai clic sulla scheda Network ed esegui l'azione che attiva la richiesta HTTP.

  3. 3

    Copia come cURL

    Fai clic con il tasto destro sulla richiesta → CopiaCopia come cURL. Quindi incollalo sopra.

Domande Frequenti

Cos'è net/http di Go?

net/http di Go è un client e server HTTP di livello production incluso nella libreria standard. Non richiede dipendenze esterne, supporta HTTP/2 per impostazione predefinita e fornisce connection pooling, timeout e configurazione TLS nativamente. È l'unica libreria che curl2code utilizza per Go — non sono necessari pacchetti di terze parti.

net/http vs client HTTP Go di terze parti — quale usare?

net/http di Go è abbastanza potente per la maggior parte dei casi d'uso — a differenza di molti linguaggi, la libreria standard è pronta per la produzione. Opzioni di terze parti come resty aggiungono comodità (tentativi automatici, concatenazione) ma aggiungono dipendenze. Per un approccio simile "batterie incluse", consulta il nostro convertitore da curl a Rust (reqwest) o da curl a Python.

Come gestire l'autenticazione in Go?

Imposta l'header Authorization con req.Header.Set("Authorization", "Bearer "+token). Per l'autenticazione Basic, usa req.SetBasicAuth(user, pass) che imposta l'header automaticamente. curl2code rileva -u e -H 'Authorization: ...' e genera il codice Go corretto.

Come inviare dati form multipart in Go?

Usa il pacchetto mime/multipart: crea un writer con multipart.NewWriter(body), aggiungi campi con CreateFormField e file con CreateFormFile. Imposta Content-Type su writer.FormDataContentType(). curl2code gestisce tutte le conversioni dei flag -F.

Come gestire gli errori HTTP in Go?

Go utilizza ritorni di errore espliciti: controlla sempre if err != nil dopo http.Do(req). Quindi controlla resp.StatusCode per gli errori a livello HTTP. Usa sempre defer resp.Body.Close() per prevenire perdite di risorse. Questa gestione esplicita degli errori è un pattern fondamentale di Go — niente eccezioni, niente try/catch.

Come effettuare richieste HTTP concorrenti in Go?

Usa le goroutine con sync.WaitGroup o i canali. Lancia ogni richiesta in una goroutine con go func() { ... }(). Per la concorrenza limitata, usa un canale semaforo. Le goroutine di Go sono leggere — puoi gestire facilmente migliaia di richieste concorrenti. Per pattern di concorrenza simili, vedi da curl a Rust.

Come impostare i timeout nel client HTTP di Go?

Imposta client.Timeout per la scadenza complessiva della richiesta. Per un controllo granulare, usa context.WithTimeout o context.WithDeadline e passa il contesto a http.NewRequestWithContext. Il flag --connect-timeout di curl mappa sul timeout di Transport.DialContext, --max-time mappa su client.Timeout.

Come configurare un proxy in Go?

Imposta Transport.Proxy su http.ProxyURL(proxyUrl) su un http.Transport personalizzato. Go rispetta anche le variabili d'ambiente HTTP_PROXY e HTTPS_PROXY per impostazione predefinita tramite http.ProxyFromEnvironment. curl2code converte i flag -x e --proxy nella configurazione proxy Go appropriata.

Come inviare una richiesta POST con un corpo JSON in Go?

Converti un comando curl POST come curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL in Go usando curl2code. Il codice generato utilizza http.Post(url, "application/json", bytes.NewBuffer(jsonData)). curl2code rileva automaticamente i flag -d/--data con contenuto JSON e imposta l'intestazione Content-Type appropriata nel codice net/http.

Come aggiungere l''autorizzazione con Bearer token in Go?

Passa curl -H "Authorization: Bearer YOUR_TOKEN" URL a curl2code e genererà il codice net/http con l'intestazione di autenticazione: req.Header.Set("Authorization", "Bearer YOUR_TOKEN"). curl2code rileva i Bearer token sia dai flag -H "Authorization: Bearer ..." che --oauth2-bearer. Per la Basic auth, usa -u user:pass.

Come impostare l''intestazione Content-Type in Go?

curl2code converte curl -H "Content-Type: application/json" URL in codice net/http con l'intestazione corretta: req.Header.Set("Content-Type", "application/json"). Per i dati -d, curl utilizza come predefinito application/x-www-form-urlencoded; per i caricamenti di moduli -F, utilizza multipart/form-data. curl2code mappa ciascuno alla corretta API di net/http.

Link utili

Guide curl

Converti curl in altri linguaggi