От команды к интеграции

Из curl — в Python, JavaScript или PHP

Перенесите проверенный запрос в скрипт или приложение. Вставьте команду curl, выберите язык и проверьте, как будут отправлены заголовки и тело запроса.

curlкод запроса
Преобразование в браузере
01

Вставьте один HTTP-запрос с заголовками и телом. Поддерживаются кавычки POSIX и переносы строк с обратной косой чертой.

POSTexample.comЗаголовки: 3
02
async function main() {
  const response = await fetch("https://example.com/api/messages", {
    method: "POST",
    headers: [
      ["Authorization", "Bearer YOUR_TOKEN"],
      ["Content-Type", "application/json"],
      ["Accept", "application/json"]
    ],
    body: "{\"message\":\"Hello from curl\",\"enabled\":true}",
    redirect: "manual",
    credentials: "omit"
  });
  console.log(response.status);
  console.log(await response.text());
}

main().catch(console.error);

Fetch в браузере или Node.js 18+

Перед запуском

  • Конвертер не отправляет запрос. Код содержит введённые URL, заголовки и учётные данные; проверьте его перед публикацией.
  • Fetch в браузере подчиняется CORS. При credentials: omit cookies не отправляются автоматически; при необходимости настройте учётные данные. Ручные перенаправления могут давать непрозрачный ответ.

Без регистрации и выполнения команд. Ввод обрабатывается в браузере.

Сохранить рабочий запрос в коде проекта

Командой curl удобно проверить API, но для регулярной выгрузки или интеграции нужен код на языке проекта. Конвертер переносит URL, метод, заголовки и данные в вызов Requests, Fetch или PHP cURL. Полученный фрагмент можно проверить, сохранить в файл и доработать под задачу.

Подготовить команду перед преобразованием

Вставьте один вызов curl с полным HTTP- или HTTPS-адресом. Сохраните кавычки вокруг значений с пробелами. Для команды из инструментов разработчика выбирайте экспорт в формате bash. Переменные оболочки и подстановки команд сначала замените конкретными значениями.

Выберите язык, сверьте метод и тело, затем прочитайте примечания. Конвертация выполняется в браузере и не обращается к API. Загрузка файлов, multipart-формы и неподдерживаемые параметры требуют ручной настройки; частичный код при ошибке не выводится.

Какой вариант выбрать: Requests, Fetch или PHP

Python использует Requests: установите библиотеку командой pip install requests. Текст тела передаётся в байтах UTF-8. PHP требует включённого расширения cURL. JavaScript использует Fetch в браузере или совместимой версии Node.js.

JSON сохраняется как исходный текст, без повторной сериализации чисел и ключей. Проверка синтаксиса JSON при этом не выполняется. Тайм-ауты и обработку ошибок добавьте под требования приложения. Requests может учитывать прокси и .netrc из окружения.

Почему curl работает, а Fetch получает ошибку

Браузер применяет CORS и сам управляет частью заголовков. Такие заголовки исключаются из Fetch-кода с указанием имён в примечаниях. Режим credentials: omit не отправляет автоматически cookies браузерной сессии. Для серверного управления этими полями рассмотрите Python или PHP.

Без -L Fetch обрабатывает перенаправления вручную, и браузер может вернуть непрозрачный ответ. При включённых перенаправлениях смена метода и передача учётных данных зависят от библиотеки. Проверьте цепочку переходов в целевом окружении.

Повторяющиеся поля формы без потери значений

Оба значения tag остаются в теле. Параметр --data-urlencode кодирует пробел, а Requests получает готовую строку. Здесь не используется словарь, в котором один одноимённый ключ мог бы заменить другой.

curl 'https://example.com/api/tags' --data-urlencode 'tag=cloud hosting' --data-urlencode 'tag=linux'
import requests

url = "https://example.com/api/tags"
headers = {
    "Content-Type": "application/x-www-form-urlencoded"
}
body = "tag=cloud%20hosting&tag=linux".encode("utf-8")

response = requests.request(
    method="POST",
    url=url,
    headers=headers,
    data=body,
    allow_redirects=False,
    verify=True,
)
print(response.status_code)
print(response.text)

Как преобразуются параметры curl

ПараметрРезультат
URL / --urlОдин полный HTTP- или HTTPS-адрес
-X / --requestЯвно заданный HTTP-метод
-H / --headerИмя и значение; дубли и пустые директивы требуют проверки
-d / --data / --data-raw / --data-binaryТело в командной строке с сохранением порядка аргументов
--data-urlencode / -GКодирование значений; -G переносит данные в строку запроса
--jsonИсходный текст JSON и стандартные JSON-заголовки
-u / --userBasic Auth в формате username:password
-L / -I / -kПеренаправления, HEAD и проверка TLS; Fetch не поддерживает -k
-b / -A / -eCookie, User-Agent и Referer с учётом ограничений браузера
--compressed / -s / -S / -v / -iРаспаковка средствами библиотеки; оформление вывода терминала не повторяется

Вопросы о конвертации

Будет ли запрос отправлен при вставке?

Нет. Инструмент только разбирает текст и формирует код в браузере. Он не проверяет адрес, пароль или доступность сервера.

Можно вставить Copy as cURL из браузера?

Да, если это один запрос в POSIX-синтаксисе с поддерживаемыми параметрами. Выбирайте вариант bash. Неизвестный параметр вызовет ошибку, а не будет молча пропущен.

Сохранятся ли большие числа в JSON?

Тело не преобразуется в объект JavaScript, поэтому конвертер не переписывает числа, пробелы и повторяющиеся ключи. --json не проверяет корректность JSON.

Почему в Fetch стало меньше заголовков?

Заголовки под управлением браузера исключаются и перечисляются в примечаниях. Content-Length рассчитывает HTTP-библиотека. Если конкретный заголовок необходим, проверьте вариант Python или PHP.

Что проверить перед публикацией скрипта?

В код попадают введённые токены, пароли и cookies. Проверьте их перед отправкой в репозиторий. Также настройте тайм-ауты, обработку ошибок и параметры окружения.

Документация: curl · Requests · Fetch