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

curl2code преобразует команды curl в код Lua с использованием библиотеки http. Конвертация выполняется в вашем браузере через WebAssembly для полной конфиденциальности. Для Python ознакомьтесь с нашим конвертером curl в Python. Для Ruby см. curl в Ruby. Ниже приведены практические примеры на Lua.

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

  1. 1

    Откройте DevTools

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

  2. 2

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

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

  3. 3

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

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

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

Что такое Lua http?

lua-http (или socket.http из LuaSocket) — это стандартный способ выполнения HTTP-запросов в Lua. Он предоставляет базовые методы GET, POST и кастомные запросы. Для расширенных функций популярен lua-resty-http в средах OpenResty/Nginx. Установите с помощью luarocks install http. curl2code генерирует код с использованием модуля http.

socket.http vs lua-resty-http vs lua-curl — что использовать?

socket.http (LuaSocket) — стандарт для общего использования Lua. lua-resty-http предназначен для OpenResty/Nginx с неблокирующим I/O. lua-curl оборачивает libcurl для полной поддержки протоколов. Используйте socket.http для автономных скриптов, resty-http — для веб-серверов. Для похожего скриптинга см. curl в Python или curl в Ruby.

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

Установите заголовок Authorization в таблице заголовков: headers = { Authorization = "Bearer token" }. Для Basic-аутентификации закодируйте данные с помощью библиотеки base64: "Basic " .. base64.encode(user .. ":" .. pass). Передайте заголовки в таблицу опций запроса. curl2code обрабатывает флаги -u и заголовки.

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

Сконструируйте тело multipart вручную со строками границ или используйте вспомогательную библиотеку, например multipart-post. Установите заголовок Content-Type с указанием границы. http.request в LuaSocket принимает функцию-источник для потоковой загрузки больших файлов. curl2code преобразует флаги -F в синтаксис Lua.

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

http.request в LuaSocket возвращает несколько значений: body, code, headers, status = http.request(url). Проверьте code на наличие статуса HTTP (200, 404 и т. д.) или nil при сетевом сбое. Используйте assert() или паттерн if not body then для проверки ошибок.

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

Используйте модуль cjson (быстрый, на базе C): local data = cjson.decode(json_string). Для кодирования: cjson.encode(table). В OpenResty cjson предустановлен. Для автономного Lua установите через luarocks install lua-cjson. В качестве альтернативы используйте dkjson на чистом Lua.

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

С LuaSocket: установите http.TIMEOUT = 30 глобально или создайте кастомное соединение и вызовите :settimeout(30). В lua-resty-http используйте httpc:set_timeout(30000) (в миллисекундах). Тайм-ауты предотвращают бесконечное зависание скриптов на неотвечающих серверах.

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

В LuaSocket установите поле proxy в опциях запроса: http.request{ url = target, proxy = "http://proxy:8080" }. Для lua-resty-http подключитесь к прокси напрямую и используйте метод CONNECT для туннелирования HTTPS. curl2code преобразует флаги -x в соответствующую настройку прокси Lua.

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

Преобразуйте команду curl POST, такую как curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL, в Lua с помощью curl2code. Сгенерированный код использует http.request(url, json_body, headers). curl2code автоматически обнаруживает флаги -d/--data с содержимым JSON и устанавливает соответствующий заголовок Content-Type в коде http.

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

Передайте curl -H "Authorization: Bearer YOUR_TOKEN" URL в curl2code, и инструмент сгенерирует код http с заголовком авторизации: headers['Authorization'] = 'Bearer YOUR_TOKEN'. curl2code распознает Bearer tokens как в флагах -H "Authorization: Bearer ...", так и в --oauth2-bearer. Для Basic auth используйте -u user:pass.

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

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

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

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

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