Конвертировать curl в Perl

Конвертируйте команды curl в код Perl с помощью LWP::UserAgent. curl2code работает полностью в вашем браузере через WebAssembly — ваши данные остаются конфиденциальными. Для Python попробуйте наш конвертер curl в Python. Для Ruby см. curl в Ruby. Ниже приведены готовые примеры на Perl.

Как скопировать curl из браузера

  1. 1

    Откройте DevTools

    Нажмите F12 или Ctrl+Shift+I, чтобы открыть инструменты разработчика в браузере.

  2. 2

    Перейдите на вкладку Network

    Нажмите на вкладку Network и выполните действие, которое инициирует HTTP-запрос.

  3. 3

    Скопируйте как cURL

    Нажмите правой кнопкой мыши на запрос → CopyCopy as cURL. Затем вставьте его выше.

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

Что такое Perl LWP?

LWP (Library for WWW in Perl) — это стандартная библиотека HTTP-клиента для Perl. Модуль LWP::UserAgent предоставляет полнофункциональный клиент с обработкой cookie, редиректов, поддержкой прокси и SSL. Установите с помощью cpan LWP или apt install libwww-perl. curl2code использует LWP по умолчанию для преобразований в Perl.

LWP vs HTTP::Tiny vs Mojo::UserAgent — что использовать?

LWP функционален и является традиционным выбором. HTTP::Tiny — это базовый модуль (установка не требуется), отлично подходит для простых запросов. Mojo::UserAgent — современный модуль с поддержкой асинхронности и WebSocket. Для быстрых скриптов используйте HTTP::Tiny. Для полного набора функций — LWP. Для похожих скриптовых языков см. curl в Python или curl в Ruby.

Как обрабатывать аутентификацию в Perl?

С LWP: $ua->default_header('Authorization' => 'Bearer token'). Для Basic-аутентификации: $ua->credentials('host:port', 'realm', 'user', 'pass'). Или устанавливайте заголовки для каждого запроса в объекте HTTP::Request. curl2code преобразует флаги -u и -H 'Authorization' в синтаксис Perl.

Как отправить multipart form data в Perl?

Используйте HTTP::Request::Common: POST($url, Content_Type => 'form-data', Content => [file => ['path/file.pdf']]). LWP автоматически обрабатывает границы multipart. Для дополнительных полей добавьте пары ключ-значение в массив Content. curl2code преобразует флаги -F в этот формат.

Как обрабатывать ошибки HTTP в Perl?

Проверяйте $response->is_success после каждого запроса. Для деталей ошибки: $response->status_line возвращает код статуса и сообщение. LWP возвращает объект ответа даже при ошибках — проверяйте $response->code для получения статуса HTTP. Используйте die или warn для сообщения об ошибках.

Как парсить JSON в Perl?

Используйте модуль JSON: my $data = decode_json($response->content). Для кодирования: my $json = encode_json($hashref). Установите с помощью cpan JSON. Для Perl 5.14+ рассмотрите JSON::PP (базовый модуль, установка не требуется). Для инструментов, ориентированных на JSON, см. curl в Go.

Как установить тайм-ауты в Perl LWP?

Установите в UserAgent: my $ua = LWP::UserAgent->new(timeout => 30). Это задает общий тайм-аут запроса в секундах. Для тайм-аута соединения используйте опции IO::Socket::SSL. Повторы в LWP не встроены — реализуйте их вручную или используйте LWP::UserAgent::Determined.

Как использовать прокси в Perl?

Установите в UserAgent: $ua->proxy(['http', 'https'], 'http://proxy:8080'). Или используйте переменные окружения: $ua->env_proxy считывает HTTP_PROXY и HTTPS_PROXY. Для исключений (no-proxy): $ua->no_proxy('localhost', '.internal'). curl2code преобразует флаги -x в вызовы прокси LWP.

Как отправить POST-запрос с телом JSON на Perl?

Преобразуйте команду curl POST, такую как curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL, в Perl с помощью curl2code. Сгенерированный код использует $ua->post($url, Content_Type => 'application/json', Content => encode_json($data)). curl2code автоматически обнаруживает флаги -d/--data с содержимым JSON и устанавливает соответствующий заголовок Content-Type в коде LWP::UserAgent.

Как добавить авторизацию через Bearer token на Perl?

Передайте curl -H "Authorization: Bearer YOUR_TOKEN" URL в curl2code, и инструмент сгенерирует код LWP::UserAgent с заголовком авторизации: $req->header('Authorization' => 'Bearer YOUR_TOKEN'). curl2code распознает Bearer tokens как в флагах -H "Authorization: Bearer ...", так и в --oauth2-bearer. Для Basic auth используйте -u user:pass.

Как установить заголовок Content-Type на Perl?

curl2code преобразует curl -H "Content-Type: application/json" URL в код LWP::UserAgent с правильным заголовком: $req->header('Content-Type' => 'application/json'). Для данных -d curl по умолчанию использует application/x-www-form-urlencoded; для загрузки форм -F используется multipart/form-data. curl2code сопоставляет каждый вариант с подходящим API LWP::UserAgent.

Полезные ссылки

Руководства по curl

Конвертировать curl в другие языки