curl を Perl に変換

LWP::UserAgent を使用して、curl コマンドを Perl コードに変換します。curl2code は WebAssembly を介してブラウザ内で完全に動作するため、データは非公開に保たれます。Python については、curl to Python 変換ツールをお試しください。Ruby については、curl to Ruby をご覧ください。以下に、すぐに使える Perl の例を掲載しています。

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

  1. 1

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

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

  2. 2

    ネットワークタブに移動

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

  3. 3

    cURL としてコピー

    リクエストを右クリック → コピーcURL としてコピー を選択します。その後、上に貼り付けてください。

よくある質問

Perl LWPとは何ですか?

LWP (Library for WWW in Perl) は、Perlの標準的なHTTPクライアントライブラリです。LWP::UserAgentモジュールは、クッキー処理、リダイレクト、プロキシサポート、およびSSLを備えたフル機能のクライアントを提供します。cpan LWPまたはapt install libwww-perlでインストールします。curl2codeは、Perl変換のデフォルトとしてLWPを使用します。

LWP、HTTP::Tiny、Mojo::UserAgentのどれを使うべきですか?

LWPは機能が豊富で、伝統的な選択肢です。HTTP::Tinyはコアモジュール(インストール不要)であり、シンプルなリクエストに最適です。Mojo::UserAgentはモダンで、非同期サポートやWebSocketを備えています。クイックスクリプトにはHTTP::Tinyを、フル機能が必要な場合はLWPを使用してください。同様のスクリプト言語については、curl to Pythonまたはcurl to Rubyを参照してください。

Perlで認証を処理するにはどうすればよいですか?

LWPの場合:$ua->default_header('Authorization' => 'Bearer token')。Basic認証の場合:$ua->credentials('host:port', 'realm', 'user', 'pass')。または、HTTP::Requestオブジェクトでリクエストごとにヘッダーを設定します。curl2codeは、-uおよび-H 'Authorization'フラグをPerlの構文に変換します。

Perlでマルチパートフォームデータを送信するにはどうすればよいですか?

HTTP::Request::Commonを使用します:POST($url, Content_Type => 'form-data', Content => [file => ['path/file.pdf']])。LWPはマルチパートのバウンダリを自動的に処理します。追加のフィールドについては、Content配列にキーと値のペアを追加します。curl2codeは、-Fフラグをこの形式に変換します。

PerlでHTTPエラーを処理するにはどうすればよいですか?

各リクエストの後に$response->is_successを確認してください。エラーの詳細については、$response->status_lineがステータスコードとメッセージを返します。LWPはエラー時でもレスポンスオブジェクトを返します。HTTPステータスについては$response->codeを確認してください。エラー報告にはdieまたはwarnを使用します。

PerlでJSONを解析するにはどうすればよいですか?

JSONモジュールを使用します:my $data = decode_json($response->content)。エンコードにはmy $json = encode_json($hashref)を使用します。cpan JSONでインストールします。Perl 5.14以降の場合は、JSON::PP(コアモジュール、インストール不要)を検討してください。よりJSON中心のツールについては、curl to Goを参照してください。

Perl LWPでタイムアウトを設定するにはどうすればよいですか?

UserAgentで設定します:my $ua = LWP::UserAgent->new(timeout => 30)。これにより、リクエスト全体のタイムアウトが秒単位で設定されます。接続タイムアウトを個別に設定するには、IO::Socket::SSLオプションを使用します。LWPのリトライ機能は組み込まれていないため、手動で実装するか、LWP::UserAgent::Determinedを使用してください。

Perlでプロキシを使用するにはどうすればよいですか?

UserAgentで設定します:$ua->proxy(['http', 'https'], 'http://proxy:8080')。または環境変数を使用します:$ua->env_proxyHTTP_PROXYおよびHTTPS_PROXYを読み取ります。プロキシを除外するには:$ua->no_proxy('localhost', '.internal')。curl2codeは、-xフラグをLWPのプロキシ呼び出しに変換します。

PerlでJSONボディを含むPOSTリクエストを送信する方法は?

curl2codeを使用して、curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URLのようなcurlのPOSTコマンドをPerlに変換します。生成されたコードでは$ua->post($url, Content_Type => 'application/json', Content => encode_json($data))を使用します。curl2codeはJSONコンテンツを含む-d/--dataフラグを自動的に検出し、LWP::UserAgentのコードに適切なContent-Typeヘッダーを設定します。

PerlでBearerトークン認証を追加する方法は?

curl -H "Authorization: Bearer YOUR_TOKEN" URLをcurl2codeに渡すと、認証ヘッダー$req->header('Authorization' => 'Bearer YOUR_TOKEN')を含むLWP::UserAgentのコードが生成されます。curl2codeは-H "Authorization: Bearer ..."--oauth2-bearerフラグの両方からBearerトークンを検出します。Basic authの場合は、-u user:passを使用してください。

PerlでContent-Typeヘッダーを設定する方法は?

curl2codeはcurl -H "Content-Type: application/json" URLを、適切なヘッダー$req->header('Content-Type' => 'application/json')を含むLWP::UserAgentのコードに変換します。-dデータの場合、curlはデフォルトでapplication/x-www-form-urlencodedを使用し、-Fフォームアップロードの場合はmultipart/form-dataを使用します。curl2codeはそれぞれを正しいLWP::UserAgent APIにマッピングします。

便利なリンク

curl ガイド

curl を他の言語に変換