Конвертер curl в Go
Конвертируйте команду curl в код Go net/http мгновенно в вашем браузере. Команда остаётся на вашем устройстве.
Ваша команда curl конвертируется в Go локально в вашем браузере и никогда не загружается, но избегайте вставки настоящих рабочих токенов или учётных данных в любые инструменты.
Нужна ещё и версия на JavaScript? Попробуйте cURL в Fetch.
Об инструменте curl в Go
Этот конвертер curl в go переписывает команду curl как идиоматичный Go с использованием стандартного пакета net/http, чтобы вы могли поместить вызов API прямо в Go-сервис без ручной настройки. Как инструмент curl в golang он читает флаги вроде -X, -H, -d, --data-raw, --json, -u, -b и -G, строит http.NewRequest с правильным методом, задаёт каждый заголовок через req.Header.Set и оборачивает тело в strings.NewReader. Сгенерированный main() читает ответ через io.ReadAll и выводит статус, готовый к компиляции командой go run. Используйте его при переносе теста curl в backend-обработчик, CLI или воркер. Преобразование происходит в вашем браузере, поэтому команда и любые токены в ней обрабатываются локально на вашем устройстве и никогда его не покидают.
Возможности
- Строит вызов http.NewRequest с методом, выведенным из флагов curl
- Задаёт каждое значение -H/--header через req.Header.Set
- Оборачивает тело запроса в strings.NewReader и добавляет импорт strings только при необходимости
- Читает ответ через io.ReadAll и выводит res.Status и тело
- Сопоставляет -u/--user с заголовком базовой аутентификации и обрабатывает cookies, user-agent и referer
- Добавляет данные -G/--get к URL в виде строки запроса и отправляет тело nil
- Включает базовые проверки ошибок после NewRequest и Do, чтобы фрагмент компилировался
- Скопируйте результат или скачайте его как request.go в один клик
Как использовать curl в Go
- Вставьте команду curl в поле команды cURL.
- Прочитайте сгенерированную программу Go net/http в панели вывода.
- Проверьте баннер предупреждений на наличие изменённых или пропущенных флагов.
- Нажмите «Копировать» или скачайте файл как request.go и запустите его командой go run.
Пример
Ввод
curl https://api.example.com/ping
Результат
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.example.com/ping"
req, err := http.NewRequest("GET", url, nil)
if err != nil {
panic(err)
}
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
data, _ := io.ReadAll(res.Body)
fmt.Println(res.Status)
fmt.Println(string(data))
}
GET без тела передаёт nil в http.NewRequest и пропускает импорт strings.
Частые ошибки и устранение неполадок
- Компилятор сообщает об ошибке imported and not used "strings". — Этот импорт добавляется только при наличии тела запроса. Если вы убрали тело вручную, удалите и импорт strings.
- Вам нужен переиспользуемый клиент с таймаутами вместо http.DefaultClient. — Замените http.DefaultClient на собственный &http.Client{Timeout: ...}; фрагмент использует клиент по умолчанию ради краткости.
- Тело отправляется как сырой текст, но вашему эндпоинту нужен JSON. — Заголовок Content-Type переносится из curl. Убедитесь, что исходная команда задаёт JSON Content-Type или использует --json, чтобы заголовок присутствовал.
Часто задаваемые вопросы
- Как преобразовать команду curl в Go?
- Вставьте команду curl в поле ввода, и конвертер отобразит полную программу Go net/http справа, которую можно скопировать или скачать как request.go.
- Использует ли сгенерированный код Go стандартную библиотеку?
- Да. Он использует net/http, io, fmt и strings только из стандартной библиотеки, поэтому перед запуском не нужно ничего go get.
- Как тело запроса представлено в Go?
- Тело оборачивается в strings.NewReader и передаётся в http.NewRequest, а импорт strings добавляется автоматически только при наличии тела.
- Можно ли запустить вывод напрямую командой go run?
- Да. Конвертер выдаёт полный package main с функцией main(), базовой обработкой ошибок и выводом ответа, поэтому go run request.go работает как есть.
- Отправляется ли моя команда curl на сервер, когда я конвертирую её в Go?
- Нет. Преобразование curl в go выполняется полностью в вашем браузере, поэтому команда и любые секреты в ней остаются на вашем устройстве.
Связанные инструменты
- curl в Python — Преобразование команды curl в скрипт Python requests.
- curl в PHP — Преобразование команды curl в скрипт PHP cURL.
- curl в Node.js — Преобразование команды curl в код Node.js axios.
- cURL в Fetch — Преобразуйте команду curl в вызов fetch() на JavaScript.
- API-клиент — Отправляйте HTTP-запросы, задавайте заголовки и параметры и изучайте ответы; сохраняет последние 25.
- Разбор URL — Разбейте URL на части и просмотрите список параметров запроса.
Все инструменты ArrayKit