curl を Lua に変換
curl2code は、http ライブラリを使用して curl コマンドを Lua コードに変換します。変換は完全なプライバシー保護のため、WebAssembly を介してブラウザ内で実行されます。Python については、curl to Python 変換ツールをご確認ください。Ruby については、curl to Ruby をご覧ください。以下に、実用的な Lua の例を示します。
ブラウザから curl をコピーする方法
- 1
デベロッパーツールを開く
F12 キーを押すか、Ctrl+Shift+Iを使用してブラウザのデベロッパーツールを開きます。
- 2
ネットワークタブに移動
ネットワークタブをクリックし、HTTP リクエストをトリガーするアクションを実行します。
- 3
cURL としてコピー
リクエストを右クリック → コピー → cURL としてコピー を選択します。その後、上に貼り付けてください。
よくある質問
Lua httpとは何ですか?
lua-http(またはLuaSocketのsocket.http)は、LuaでHTTPリクエストを行うための標準的な方法です。基本的なGET、POST、およびカスタムリクエストメソッドを提供します。より多くの機能が必要な場合は、OpenResty/Nginx環境でlua-resty-httpが人気です。luarocks install httpでインストールします。curl2codeは、httpモジュールを使用したコードを生成します。
socket.http、lua-resty-http、lua-curlのどれを使うべきですか?
socket.http (LuaSocket) は、一般的なLuaの標準です。lua-resty-httpは、非ブロッキングI/Oを備えたOpenResty/Nginx用です。lua-curlは、完全なプロトコルサポートのためにlibcurlをラップしています。スタンドアロンスクリプトにはsocket.httpを、ウェブサーバーにはresty-httpを使用してください。同様のスクリプトについては、curl to Pythonまたはcurl to Rubyを参照してください。
Luaで認証を処理するにはどうすればよいですか?
ヘッダーテーブルにAuthorizationヘッダーを設定します:headers = { Authorization = "Bearer token" }。Basic認証の場合は、base64ライブラリでエンコードします:"Basic " .. base64.encode(user .. ":" .. pass)。リクエストオプションテーブルにヘッダーを渡します。curl2codeは、-uおよびヘッダーフラグを処理します。
Luaでマルチパートフォームデータを送信するにはどうすればよいですか?
バウンダリ文字列を使用してマルチパートのボディを手動で構築するか、multipart-postのようなヘルパーライブラリを使用します。バウンダリを含むContent-Typeヘッダーを設定します。LuaSocketのhttp.requestは、大きなアップロードをストリーミングするためのソース関数を受け入れます。curl2codeは、-FフラグをLuaの構文に変換します。
LuaでHTTPエラーを処理するにはどうすればよいですか?
LuaSocketのhttp.requestは複数の値を返します:body, code, headers, status = http.request(url)。HTTPステータス(200、404など)についてはcodeを確認し、ネットワーク障害の場合は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の場合は、プロキシに直接接続し、HTTPSトンネリングにはCONNECTメソッドを使用します。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に渡すと、認証ヘッダーheaders['Authorization'] = 'Bearer YOUR_TOKEN'を含むhttpのコードが生成されます。curl2codeは-H "Authorization: Bearer ..."と--oauth2-bearerフラグの両方からBearerトークンを検出します。Basic authの場合は、-u user:passを使用してください。
LuaでContent-Typeヘッダーを設定する方法は?
curl2codeはcurl -H "Content-Type: application/json" URLを、適切なヘッダーheaders['Content-Type'] = 'application/json'を含むhttpのコードに変換します。-dデータの場合、curlはデフォルトでapplication/x-www-form-urlencodedを使用し、-Fフォームアップロードの場合はmultipart/form-dataを使用します。curl2codeはそれぞれを正しいhttp APIにマッピングします。