Prevod curl do Go

Preveďte curl príkazy na Go kód pomocou štandardného balíka net/http. curl2code beží úplne vo vašom prehliadači cez WebAssembly — vaše údaje zostávajú v súkromí. Ak preferujete jazyk vyššej úrovne, vyskúšajte náš prevodník curl do Pythonu. Pre systémové programovanie si pozrite curl do Rustu. Nižšie sú Go príklady pripravené na použitie.

Ako skopírovať curl z vášho prehliadača

  1. 1

    Otvorte DevTools

    Stlačte F12 alebo Ctrl+Shift+I na otvorenie vývojárskych nástrojov prehliadača.

  2. 2

    Prejdite na kartu Network

    Kliknite na kartu Network a vykonajte akciu, ktorá spustí HTTP požiadavku.

  3. 3

    Skopírovať ako cURL

    Kliknite pravým tlačidlom na požiadavku → CopyCopy as cURL. Potom ju prilepte vyššie.

Často kladené otázky

Čo je Go net/http?

Go net/http je HTTP klient a server produkčnej kvality zahrnutý v štandardnej knižnici. Nevyžaduje žiadne externé závislosti, predvolene podporuje HTTP/2 a poskytuje zdieľanie pripojení, timeouty a konfiguráciu TLS priamo po vybalení. Je to jediná knižnica, ktorú curl2code používa pre Go — nie sú potrebné žiadne balíky tretích strán.

net/http vs HTTP klienti tretích strán v Go — čo použiť?

Go net/http je dostatočne výkonný pre väčšinu prípadov použitia — na rozdiel od mnohých jazykov je štandardná knižnica pripravená na produkciu. Možnosti tretích strán ako resty pridávajú pohodlie (automatické opakovania, reťazenie), ale pridávajú závislosti. Pre podobný prístup "všetko v cene" si pozrite náš curl to Rust konvertor (reqwest) alebo curl to Python.

Ako riešiť autentifikáciu v Go?

Nastavte hlavičku Authorization pomocou req.Header.Set("Authorization", "Bearer "+token). Pre Basic autentifikáciu použite req.SetBasicAuth(user, pass), čo nastaví hlavičku automaticky. curl2code deteguje -u a -H 'Authorization: ...' a vygeneruje správny Go kód.

Ako posielať multipart form data v Go?

Použite balík mime/multipart: vytvorte writer pomocou multipart.NewWriter(body), pridajte polia pomocou CreateFormField a súbory pomocou CreateFormFile. Nastavte Content-Type na writer.FormDataContentType(). curl2code spracováva všetky konverzie prepínačov -F.

Ako riešiť HTTP chyby v Go?

Go používa explicitné návratové hodnoty chýb: vždy skontrolujte if err != nil po http.Do(req). Potom skontrolujte resp.StatusCode pre chyby na úrovni HTTP. Vždy použite defer resp.Body.Close(), aby ste zabránili úniku zdrojov. Toto explicitné spracovanie chýb je základným vzorom v Go — žiadne výnimky, žiadne try/catch.

Ako vytvárať súbežné HTTP požiadavky v Go?

Použite gorutiny so sync.WaitGroup alebo kanálmi. Spustite každú požiadavku v gorutine pomocou go func() { ... }(). Pre obmedzenú súbežnosť použite semaforový kanál. Gorutiny v Go sú ľahké — môžete jednoducho spracovať tisíce súbežných požiadaviek. Pre podobné vzory súbežnosti si pozrite curl to Rust.

Ako nastaviť timeouty v Go HTTP klientovi?

Nastavte client.Timeout pre celkový termín požiadavky. Pre jemnejšiu kontrolu použite context.WithTimeout alebo context.WithDeadline a odovzdajte kontext do http.NewRequestWithContext. Prepínač curl --connect-timeout sa mapuje na timeout Transport.DialContext, --max-time sa mapuje na client.Timeout.

Ako nakonfigurovať proxy v Go?

Nastavte Transport.Proxy na http.ProxyURL(proxyUrl) na vlastnom http.Transport. Go tiež predvolene rešpektuje premenné prostredia HTTP_PROXY a HTTPS_PROXY cez http.ProxyFromEnvironment. curl2code konvertuje prepínače -x a --proxy na príslušnú konfiguráciu proxy v Go.

Ako poslať POST požiadavku s JSON telom v jazyku Go?

Preveďte curl POST príkaz ako curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL do jazyka Go pomocou curl2code. Vygenerovaný kód používa http.Post(url, "application/json", bytes.NewBuffer(jsonData)). curl2code automaticky deteguje prepínače -d/--data s JSON obsahom a nastaví príslušnú hlavičku Content-Type v kóde pre net/http.

Ako pridať autorizáciu pomocou Bearer tokenu v jazyku Go?

Vložte curl -H "Authorization: Bearer YOUR_TOKEN" URL do curl2code a nástroj vygeneruje kód pre net/http s autorizačnou hlavičkou: req.Header.Set("Authorization", "Bearer YOUR_TOKEN"). curl2code deteguje Bearer tokeny z prepínačov -H "Authorization: Bearer ..." aj --oauth2-bearer. Pre Basic auth použite -u user:pass.

Ako nastaviť hlavičku Content-Type v jazyku Go?

curl2code konvertuje curl -H "Content-Type: application/json" URL na kód pre net/http so správnou hlavičkou: req.Header.Set("Content-Type", "application/json"). Pre dáta v -d curl predvolene používa application/x-www-form-urlencoded; pre nahrávanie formulárov cez -F používa multipart/form-data. curl2code mapuje každý z nich na správne API pre net/http.

Užitočné odkazy

Príručky pre curl

Prevod curl do iných jazykov