Конвертиране на curl в Go
Конвертирайте curl команди в Go код, използвайки стандартния пакет net/http. curl2code работи изцяло във вашия браузър чрез WebAssembly — вашите данни остават поверителни. Ако предпочитате език от по-високо ниво, опитайте нашия curl към Python конвертор. За системно програмиране вижте curl към Rust. По-долу са дадени готови за употреба Go примери.
Как да копирате curl от вашия браузър
- 1
Отворете DevTools
Натиснете F12 или Ctrl+Shift+I, за да отворите инструментите за разработчици на вашия браузър.
- 2
Отидете в раздела Network
Кликнете върху раздела Network и извършете действието, което задейства HTTP заявката.
- 3
Копирайте като cURL
Кликнете с десния бутон върху заявката → Copy → Copy as cURL. След това я поставете по-горе.
Често задавани въпроси
Какво е Go net/http?
net/http на Go е HTTP клиент и сървър от производствен клас, включен в стандартната библиотека. Той не изисква външни зависимости, поддържа HTTP/2 по подразбиране и осигурява пул от връзки, таймаути и TLS конфигурация директно. Това е единствената библиотека, която curl2code използва за Go — не са необходими пакети от трети страни.
net/http срещу външни Go HTTP клиенти — кое да използвам?
net/http на Go е достатъчно мощен за повечето случаи — за разлика от много езици, стандартната библиотека тук е готова за продукция. Опции от трети страни като resty добавят удобство (автоматични повторни опити, верижно извикване), но добавят и зависимости. За подобен подход с всичко включено, вижте нашия конвертор от curl към Rust (reqwest) или curl към Python.
Как да се справя с автентикацията в Go?
Задайте заглавието Authorization с req.Header.Set("Authorization", "Bearer "+token). За Basic автентикация използвайте req.SetBasicAuth(user, pass), което задава заглавието автоматично. curl2code разпознава -u и -H 'Authorization: ...' и генерира правилния Go код.
Как да изпращам multipart form данни в Go?
Използвайте пакета mime/multipart: създайте writer с multipart.NewWriter(body), добавете полета с CreateFormField и файлове с CreateFormFile. Задайте Content-Type на writer.FormDataContentType(). curl2code обработва всички конвертирания на -F флагове.
Как да се справя с HTTP грешки в Go?
Go използва изрично връщане на грешки: винаги проверявайте if err != nil след http.Do(req). След това проверете resp.StatusCode за грешки на HTTP ниво. Винаги използвайте defer resp.Body.Close(), за да предотвратите изтичане на ресурси. Тази изрична обработка на грешки е основен модел в Go — без изключения, без try/catch.
Как да правя паралелни HTTP заявки в Go?
Използвайте goroutines със sync.WaitGroup или канали. Стартирайте всяка заявка в goroutine с go func() { ... }(). За ограничена конкурентност използвайте семафорен канал. Goroutines в Go са леки — можете лесно да обработвате хиляди паралелни заявки. За подобни модели на конкурентност вижте curl към Rust.
Как да задам таймаути в Go HTTP клиент?
Задайте client.Timeout за крайния срок на цялата заявка. За по-фин контрол използвайте context.WithTimeout или context.WithDeadline и предайте контекста на http.NewRequestWithContext. Флагът --connect-timeout на curl се мапва към таймаута на Transport.DialContext, а --max-time се мапва към client.Timeout.
Как да конфигурирам прокси в Go?
Задайте Transport.Proxy на http.ProxyURL(proxyUrl) в персонализиран http.Transport. Go също така зачита HTTP_PROXY и HTTPS_PROXY променливите на средата по подразбиране чрез http.ProxyFromEnvironment. curl2code конвертира -x и --proxy флаговете в съответната Go прокси конфигурация.
Как се изпраща POST заявка с JSON тяло в Go?
Конвертирайте curl POST команда като curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL в Go чрез curl2code. Генерираният код използва http.Post(url, "application/json", bytes.NewBuffer(jsonData)). curl2code автоматично разпознава -d/--data флагове с JSON съдържание и задава съответната Content-Type заглавна част в net/http кода.
Как се добавя Bearer token оторизация в Go?
Подайте curl -H "Authorization: Bearer YOUR_TOKEN" URL на curl2code и той ще генерира net/http код със заглавна част за оторизация: req.Header.Set("Authorization", "Bearer YOUR_TOKEN"). curl2code разпознава Bearer токени както от -H "Authorization: Bearer ...", така и от --oauth2-bearer флагове. За Basic auth използвайте -u user:pass.
Как се задава Content-Type заглавна част в Go?
curl2code конвертира curl -H "Content-Type: application/json" URL в net/http код с правилната заглавна част: req.Header.Set("Content-Type", "application/json"). За -d данни, curl използва по подразбиране application/x-www-form-urlencoded; за -F качване на формуляри, използва multipart/form-data. curl2code свързва всеки от тях с правилния net/http API.
Полезни връзки
Ръководства за curl
Кодове за грешки на curl
Справка за всеки изходен код на curl — причини, решения и съвети за отстраняване на грешки.
Изтегляне на файлове с curl
Запазвайте файлове с -o, -O, следвайте пренасочвания, възобновявайте изтегляния и още.
SSL, TLS и прокси
Конфигурирайте сертификати, версии на TLS, HTTP/SOCKS проксита и персонализиран DNS.