Конвертувати 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?
Go net/http — це HTTP-клієнт і сервер промислового рівня, включений у стандартну бібліотеку. Він не потребує зовнішніх залежностей, підтримує HTTP/2 за замовчуванням і забезпечує пул з'єднань, таймаути та конфігурацію TLS «з коробки». Це єдина бібліотека, яку curl2code використовує для Go — сторонні пакети не потрібні.
net/http проти сторонніх HTTP-клієнтів Go — що використовувати?
Go net/http достатньо потужний для більшості випадків — на відміну від багатьох мов, стандартна бібліотека тут готова до продакшену. Сторонні варіанти, як-от 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 дані форми в 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?
Використовуйте горутини з sync.WaitGroup або канали. Запускайте кожен запит у горутині за допомогою go func() { ... }(). Для обмеженої конкурентності використовуйте канал-семафор. Горутини в Go легковажні — ви можете легко обробляти тисячі конкурентних запитів. Для подібних шаблонів конкурентності дивіться curl у Rust.
Як встановити таймаути в HTTP-клієнті Go?
Встановіть client.Timeout для загального дедлайну запиту. Для точного контролю використовуйте context.WithTimeout або context.WithDeadline і передавайте контекст у http.NewRequestWithContext. Параметр curl --connect-timeout відображається на таймаут 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-токена у 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.