Сохранить рабочий запрос в коде проекта
Командой 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 / --user | Basic Auth в формате username:password |
-L / -I / -k | Перенаправления, HEAD и проверка TLS; Fetch не поддерживает -k |
-b / -A / -e | Cookie, User-Agent и Referer с учётом ограничений браузера |
--compressed / -s / -S / -v / -i | Распаковка средствами библиотеки; оформление вывода терминала не повторяется |
Вопросы о конвертации
Будет ли запрос отправлен при вставке?
Нет. Инструмент только разбирает текст и формирует код в браузере. Он не проверяет адрес, пароль или доступность сервера.
Можно вставить Copy as cURL из браузера?
Да, если это один запрос в POSIX-синтаксисе с поддерживаемыми параметрами. Выбирайте вариант bash. Неизвестный параметр вызовет ошибку, а не будет молча пропущен.
Сохранятся ли большие числа в JSON?
Тело не преобразуется в объект JavaScript, поэтому конвертер не переписывает числа, пробелы и повторяющиеся ключи. --json не проверяет корректность JSON.
Почему в Fetch стало меньше заголовков?
Заголовки под управлением браузера исключаются и перечисляются в примечаниях. Content-Length рассчитывает HTTP-библиотека. Если конкретный заголовок необходим, проверьте вариант Python или PHP.
Что проверить перед публикацией скрипта?
В код попадают введённые токены, пароли и cookies. Проверьте их перед отправкой в репозиторий. Также настройте тайм-ауты, обработку ошибок и параметры окружения.
