curl を Lua に変換

curl2code は、http ライブラリを使用して curl コマンドを Lua コードに変換します。変換は完全なプライバシー保護のため、WebAssembly を介してブラウザ内で実行されます。Python については、curl to Python 変換ツールをご確認ください。Ruby については、curl to Ruby をご覧ください。以下に、実用的な Lua の例を示します。

ブラウザから curl をコピーする方法

  1. 1

    デベロッパーツールを開く

    F12 キーを押すか、Ctrl+Shift+Iを使用してブラウザのデベロッパーツールを開きます。

  2. 2

    ネットワークタブに移動

    ネットワークタブをクリックし、HTTP リクエストをトリガーするアクションを実行します。

  3. 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にマッピングします。

便利なリンク

curl ガイド

curl を他の言語に変換