Конвертировать curl в Lua
curl2code преобразует команды curl в код Lua с использованием библиотеки http. Конвертация выполняется в вашем браузере через WebAssembly для полной конфиденциальности. Для Python ознакомьтесь с нашим конвертером curl в Python. Для Ruby см. curl в Ruby. Ниже приведены практические примеры на Lua.
Как скопировать curl из браузера
- 1
Откройте DevTools
Нажмите F12 или Ctrl+Shift+I, чтобы открыть инструменты разработчика в браузере.
- 2
Перейдите на вкладку Network
Нажмите на вкладку Network и выполните действие, которое инициирует HTTP-запрос.
- 3
Скопируйте как cURL
Нажмите правой кнопкой мыши на запрос → Copy → Copy 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.