將 curl 轉換為 Lua
curl2code 使用 http 函式庫將 curl 指令轉換為 Lua 程式碼。轉換過程透過 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(或來自 LuaSocket 的 socket.http)是在 Lua 中發送 HTTP 請求的標準方式。它提供基本的 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 用於具有非阻塞 I/O 的 OpenResty/Nginx。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 和標頭標記。
如何在 Lua 中發送 multipart 表單數據?
手動使用 boundary 字串構建 multipart 主體,或使用如 multipart-post 之類的輔助函式庫。設置帶有 boundary 的 Content-Type 標頭。LuaSocket 的 http.request 接受一個用於串流大型上傳的來源函數。curl2code 將 -F 標記轉換為 Lua 語法。
如何在 Lua 中處理 HTTP 錯誤?
LuaSocket 的 http.request 返回多個值:body, code, headers, status = http.request(url)。檢查 code 獲取 HTTP 狀態(200、404 等),或在網路故障時檢查是否為 nil。使用 Lua 的 assert() 或 if not body then 模式進行錯誤檢查。
如何在 Lua 中解析 JSON?
使用 cjson 模組(快速且基於 C):local data = cjson.decode(json_string)。對於編碼:cjson.encode(table)。在 OpenResty 中,cjson 已預先安裝。對於獨立 Lua,使用 luarocks install lua-cjson 安裝。或者,使用純 Lua 的 dkjson。
如何在 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 代理設置。
如何在 Lua 中發送帶有 JSON 主體的 POST 請求?
使用 curl2code 將類似 curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL 的 curl POST 指令轉換為 Lua。生成的程式碼使用 http.request(url, json_body, headers)。curl2code 會自動偵測帶有 JSON 內容的 -d/--data 旗標,並在 http 程式碼中設置適當的 Content-Type 標頭。
如何在 Lua 中添加 Bearer 權杖授權?
將 curl -H "Authorization: Bearer YOUR_TOKEN" URL 傳遞給 curl2code,它會生成帶有授權標頭的 http 程式碼:headers['Authorization'] = 'Bearer YOUR_TOKEN'。curl2code 會從 -H "Authorization: Bearer ..." 和 --oauth2-bearer 旗標中偵測 Bearer 權杖。對於 Basic auth,請使用 -u user:pass。
如何在 Lua 中設置 Content-Type 標頭?
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 會將每一項映射到正確的 http API。