cURL в Dart

Вставьте команду curl и получите код Dart, выполняющий тот же запрос через package:http.

cURL в Dart разбирает команду в браузере: учётные данные не покидают ваше устройство.

Создаёт и поддерживает Udit Agarwal

Преобразовать в Swift

Об инструменте cURL в Dart

Документация бэкенда даёт команду curl, а приложению на Flutter нужен Dart. Конвертер наводит мост: он разбирает флаги curl так же, как это делает сам curl, и выдаёт код на package:http — том самом пакете, от которого уже зависит почти любой проект на Dart или Flutter. Заголовки собираются в типизированную карту, тело JSON превращается в карту Dart и кодируется через jsonEncode, а базовая аутентификация собирается заново через base64Encode. Глаголы без сокращённых методов уходят в http.Request.

Возможности

  • Разбирает -X, -H, -d, --data-raw, --json, -u, -b, -A, -e и -G так же, как curl
  • Генерирует код на package:http, стандартном HTTP-клиенте Dart
  • Заголовки собираются в типизированную Map<String, String>
  • Тело JSON выводится картой Dart и кодируется через jsonEncode
  • Базовая аутентификация собирается через base64Encode, а не вставкой Base64
  • Для глаголов без сокращений используется http.Request
  • Предупреждает о флагах curl без разумного соответствия в Dart

Как использовать cURL в Dart

  1. Вставьте команду curl из документации к вашему API
  2. Прочитайте сгенерированный Dart справа
  3. Проверьте предупреждения о флагах, которые не удалось перенести
  4. Скопируйте код или скачайте его как .dart

Пример

Ввод

curl -X PUT https://api.example.com/users/1 -H 'Authorization: Bearer TOKEN' -d '{"role":"admin"}'

Результат

final response = await http.put(url, headers: headers, body: body);

Глагол берётся из -X, а тело JSON собирается картой Dart перед кодированием.

Частые ошибки и устранение неполадок

  • При запуске файла пакет не найден. — Добавьте его в pubspec.yaml в dependencies как http и выполните dart pub get. Он не входит в SDK, хотя и поддерживается командой Dart.
  • Запрос падает только во Flutter web. — Это CORS, а не код. Браузер применяет политику одного источника, которой команда curl никогда не видит.
  • Строка в теле странно подставляется. — В Dart знак доллара начинает интерполяцию. В сгенерированных литералах он экранирован, но вставленные вручную значения нужно экранировать самому.
  • На Android запрос идёт, а к локальному серверу в эмуляторе нет. — Эмулятор Android не видит localhost хост-машины: используйте 10.0.2.2 и разрешите обычный HTTP в конфигурации сетевой безопасности.

Часто задаваемые вопросы

Будет ли сгенерированный код работать во Flutter?
Да. package:http ведёт себя одинаково во Flutter и в чистом Dart, поэтому код запроса можно вставить в сервисный класс как есть.
Что выбрать: package:http или Dio?
package:http — более лёгкий официальный вариант, покрывающий почти любые запросы. Dio добавляет перехватчики, отмену и удобство multipart.
Как преобразуется тело JSON?
Оно разбирается и записывается литералом карты Dart, а затем кодируется через jsonEncode. Вложенные объекты и массивы остаются читаемыми.
А если у метода нет помощника вроде http.get?
Сгенерированный код собирает http.Request с глаголом-строкой и отправляет через send(), что покрывает PURGE, LINK и любой другой метод.
Загружается ли команда curl для преобразования?
Нет. Разбор и генерация кода происходят в вашем браузере, поэтому токены и ключи API остаются на устройстве.

Связанные инструменты

  • cURL в Swift — Превращает команду curl в код Swift на URLSession.
  • cURL в Fetch — Преобразуйте команду curl в вызов fetch() на JavaScript.
  • curl в Python — Преобразование команды curl в скрипт Python requests.
  • curl в Go — Преобразование команды curl в код Go net/http.
  • curl в Node.js — Преобразование команды curl в код Node.js axios.
  • API-клиент — Отправляйте HTTP-запросы, задавайте заголовки и параметры и изучайте ответы; сохраняет последние 25.

Другие инструменты: Инструменты API

  • cURL в Fetch — Преобразуйте команду curl в вызов fetch() на JavaScript.
  • Разбор URL — Разбейте URL на части и просмотрите список параметров запроса.
  • API-клиент — Отправляйте HTTP-запросы, задавайте заголовки и параметры и изучайте ответы; сохраняет последние 25.
  • Генератор URL и UTM — Создавайте и проверяйте закодированные рабочие URL-адреса с параметрами UTM.
  • Тестер API OpenAI — Создавайте, выполняйте и копируйте запросы к API OpenAI Chat Completions в виде cURL, Python и JavaScript.
  • Тестер API Anthropic Claude — Создавайте, выполняйте и копируйте запросы к API Anthropic Claude Messages в виде cURL, Python и JavaScript.
  • Тестер API Google Gemini — Создавайте, выполняйте и копируйте запросы generateContent Google Gemini в виде cURL, Python и JavaScript.
  • Тестер API Replicate — Создавайте, выполняйте и копируйте запросы прогнозов API Replicate в виде cURL, Python и JavaScript.
  • Тестер API Hugging Face — Создавайте, выполняйте и копируйте запросы к Hugging Face Inference API в виде cURL, Python и JavaScript.
  • curl в Python — Преобразование команды curl в скрипт Python requests.
  • curl в Go — Преобразование команды curl в код Go net/http.
  • curl в PHP — Преобразование команды curl в скрипт PHP cURL.

Все инструменты: Инструменты API (24) · Все инструменты