Конвертиране на curl в Go

Конвертирайте curl команди в Go код, използвайки стандартния пакет net/http. curl2code работи изцяло във вашия браузър чрез WebAssembly — вашите данни остават поверителни. Ако предпочитате език от по-високо ниво, опитайте нашия curl към Python конвертор. За системно програмиране вижте curl към Rust. По-долу са дадени готови за употреба Go примери.

Как да копирате curl от вашия браузър

  1. 1

    Отворете DevTools

    Натиснете F12 или Ctrl+Shift+I, за да отворите инструментите за разработчици на вашия браузър.

  2. 2

    Отидете в раздела Network

    Кликнете върху раздела Network и извършете действието, което задейства HTTP заявката.

  3. 3

    Копирайте като cURL

    Кликнете с десния бутон върху заявката → CopyCopy 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 в други езици