Převést curl do Go
Převeďte curl příkazy na kód v Go pomocí standardního balíčku net/http. curl2code běží zcela ve vašem prohlížeči přes WebAssembly — vaše data zůstávají v soukromí. Pokud dáváte přednost jazyku vyšší úrovně, zkuste náš převodník curl do Pythonu. Pro systémové programování viz curl do Rustu. Níže jsou příklady v Go připravené k použití.
Jak zkopírovat curl z prohlížeče
- 1
Otevřete DevTools
Stiskněte F12 nebo Ctrl+Shift+I pro otevření vývojářských nástrojů prohlížeče.
- 2
Přejděte na kartu Network
Klikněte na kartu Network a proveďte akci, která vyvolá HTTP požadavek.
- 3
Zkopírovat jako cURL
Klikněte pravým tlačítkem na požadavek → Copy → Copy as cURL. Poté jej vložte výše.
Často kladené dotazy
Co je Go net/http?
Go net/http je HTTP klient a server produkční kvality obsažený ve standardní knihovně. Nevyžaduje žádné externí závislosti, ve výchozím nastavení podporuje HTTP/2 a poskytuje sdílení připojení, timeouty a konfiguraci TLS přímo po instalaci. Je to jediná knihovna, kterou curl2code pro Go používá — nejsou potřeba žádné balíčky třetích stran.
net/http vs HTTP klienti třetích stran v Go — co použít?
Go net/http je dostatečně výkonný pro většinu případů použití — na rozdíl od mnoha jazyků je standardní knihovna připravena pro produkci. Možnosti třetích stran jako resty přidávají pohodlí (automatické opakování, řetězení), ale přidávají závislosti. Pro podobný přístup "vše v jednom" se podívejte na náš převodník curl do Rustu (reqwest) nebo curl do Pythonu.
Jak řešit autentizaci v Go?
Nastavte hlavičku Authorization pomocí req.Header.Set("Authorization", "Bearer "+token). Pro autentizaci Basic použijte req.SetBasicAuth(user, pass), což nastaví hlavičku automaticky. curl2code detekuje -u a -H 'Authorization: ...' a generuje správný kód v Go.
Jak posílat multipart form data v Go?
Použijte balíček mime/multipart: vytvořte writer pomocí multipart.NewWriter(body), přidejte pole pomocí CreateFormField a soubory pomocí CreateFormFile. Nastavte Content-Type na writer.FormDataContentType(). curl2code zpracovává všechny převody přepínačů -F.
Jak řešit HTTP chyby v Go?
Go používá explicitní návratové hodnoty chyb: po if err != nil vždy zkontrolujte http.Do(req). Poté zkontrolujte resp.StatusCode pro chyby na úrovni HTTP. Vždy použijte defer resp.Body.Close(), abyste zabránili úniku prostředků. Toto explicitní zpracování chyb je základním vzorem v Go — žádné výjimky, žádné try/catch.
Jak provádět souběžné HTTP požadavky v Go?
Použijte goroutiny se sync.WaitGroup nebo kanály. Spusťte každý požadavek v goroutině pomocí go func() { ... }(). Pro omezenou souběžnost použijte semaforový kanál. Goroutiny v Go jsou lehké — snadno zvládnete tisíce souběžných požadavků. Pro podobné vzory souběžnosti viz curl do Rustu.
Jak nastavit timeouty v HTTP klientovi Go?
Nastavte client.Timeout pro celkový termín požadavku. Pro jemnější kontrolu použijte context.WithTimeout nebo context.WithDeadline a předejte kontext do http.NewRequestWithContext. Přepínač curl --connect-timeout se mapuje na timeout Transport.DialContext, --max-time se mapuje na client.Timeout.
Jak nakonfigurovat proxy v Go?
Nastavte Transport.Proxy na http.ProxyURL(proxyUrl) u vlastního http.Transport. Go také ve výchozím nastavení respektuje proměnné prostředí HTTP_PROXY a HTTPS_PROXY prostřednictvím http.ProxyFromEnvironment. curl2code převádí přepínače -x a --proxy na příslušnou konfiguraci proxy v Go.
Jak odeslat POST požadavek s JSON tělem v Go?
Převeďte curl POST příkaz jako curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL do Go pomocí curl2code. Vygenerovaný kód používá http.Post(url, "application/json", bytes.NewBuffer(jsonData)). curl2code automaticky detekuje -d/--data přepínače s JSON obsahem a nastaví odpovídající Content-Type hlavičku v kódu pro net/http.
Jak přidat autorizaci pomocí Bearer tokenu v Go?
Vložte curl -H "Authorization: Bearer YOUR_TOKEN" URL do curl2code a nástroj vygeneruje kód pro net/http s autorizační hlavičkou: req.Header.Set("Authorization", "Bearer YOUR_TOKEN"). curl2code detekuje Bearer tokeny z přepínačů -H "Authorization: Bearer ..." i --oauth2-bearer. Pro Basic auth použijte -u user:pass.
Jak nastavit hlavičku Content-Type v Go?
curl2code převede curl -H "Content-Type: application/json" URL na kód pro net/http se správnou hlavičkou: req.Header.Set("Content-Type", "application/json"). Pro data u -d curl standardně používá application/x-www-form-urlencoded; pro nahrávání formulářů přes -F používá multipart/form-data. curl2code mapuje každý z nich na správné net/http API.