curl を Ruby に変換
curl2code は、標準の net/http ライブラリを使用して curl コマンドを Ruby コードに変換します。完全なプライバシー保護のため、すべて WebAssembly を介してブラウザ内でローカルに実行されます。Python をお好みの場合は、curl to Python 変換ツールをご確認ください。Elixir については、curl to Elixir をご覧ください。以下に、実用的な Ruby の例を示します。
ブラウザから curl をコピーする方法
- 1
デベロッパーツールを開く
F12 キーを押すか、Ctrl+Shift+Iを使用してブラウザのデベロッパーツールを開きます。
- 2
ネットワークタブに移動
ネットワークタブをクリックし、HTTP リクエストをトリガーするアクションを実行します。
- 3
cURL としてコピー
リクエストを右クリック → コピー → cURL としてコピー を選択します。その後、上に貼り付けてください。
よくある質問
Ruby net/httpとは何ですか?
Rubyのnet/httpは、すべてのRubyインストールに含まれている標準ライブラリのHTTPクライアントです。GET、POST、マルチパートアップロード、SSL、カスタムヘッダーを処理します。gemのインストールは不要です。curl2codeは、クリーンで宣言的なAPIを使用して一般的なHTTPパターンを簡素化する人気のあるgem、HTTPartyもサポートしています。
net/http、HTTParty、Faradayのどれを使うべきですか?
net/httpは組み込みで依存関係がないため、シンプルなタスクやスクリプトに最適です。HTTPartyは自動JSONパースを備えたクリーンなDSLを提供します。Faradayはミドルウェア、アダプターパターン、および最高の柔軟性を提供します。同様のスクリプトのシンプルさについては、curl to Python コンバーターまたはcurl to PHPをご覧ください。
Rubyで認証を処理するにはどうすればよいですか?
net/httpの場合:request["Authorization"] = "Bearer token"。Basic認証の場合:request.basic_auth("user", "pass")。HTTPartyではheaders: { "Authorization" => "Bearer token" }またはbasic_auth: { username: "user", password: "pass" }を使用します。curl2codeは-uとヘッダーフラグの両方を処理します。
Rubyでマルチパートフォームデータを送信するにはどうすればよいですか?
net/httpでは、multipart-post gemを使用するか、境界文字列を使用してNet::HTTP::Postで手動でマルチパートボディを構築します。HTTPartyはbody: { file: File.open("path") }でこれを簡素化します。curl2codeは両方のライブラリバリアントに対して-Fフラグを変換します。
RubyでHTTPエラーを処理するにはどうすればよいですか?
net/httpでは、response.is_a?(Net::HTTPSuccess)を確認するか、2xx以外のステータスで例外を発生させるresponse.valueを使用します。HTTPartyは、.success?および.codeメソッドを持つレスポンスオブジェクトを返します。永続的な接続については、Errno::ECONNREFUSEDやNet::ReadTimeoutをレスキュー(rescue)してください。
Rubyで並行HTTPリクエストを行うにはどうすればよいですか?
Rubyの標準ライブラリは同期型です。基本的な並行処理にはThread.new { ... }を、スレッドプールにはconcurrent-ruby gemを使用してください。非同期I/Oには、Async gemと共にasync-httpを使用します。Typhoeusは並列リクエストキューイングを提供します。組み込みの非同期サポートについては、curl to Elixirをご覧ください。
Rubyでタイムアウトを設定するにはどうすればよいですか?
net/httpの場合:http.open_timeout = 10(接続)およびhttp.read_timeout = 30(レスポンス)。HTTPartyはtimeout: 30オプションを受け入れます。これらはcurlの--connect-timeoutおよび--max-timeにマッピングされます。リクエストが無期限にハングするのを避けるために、常にタイムアウトを設定してください。
Rubyでプロキシを使用するにはどうすればよいですか?
net/httpの場合:Net::HTTP.new(host, port, proxy_host, proxy_port)。または、http_proxyおよびhttps_proxy環境変数を設定します。Rubyはこれらを自動的に尊重します。HTTPartyはhttp_proxy: 'http://proxy:8080'オプションを使用します。curl2codeは-xフラグを正しいRubyの構文に変換します。
RubyでJSONボディを含むPOSTリクエストを送信する方法は?
curl2codeを使用して、curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URLのようなcurlのPOSTコマンドをRubyに変換します。生成されたコードではNet::HTTP.post(uri, data.to_json, 'Content-Type' => 'application/json')を使用します。curl2codeはJSONコンテンツを含む-d/--dataフラグを自動的に検出し、net/httpのコードに適切なContent-Typeヘッダーを設定します。
RubyでBearerトークン認証を追加する方法は?
curl -H "Authorization: Bearer YOUR_TOKEN" URLをcurl2codeに渡すと、認証ヘッダーreq['Authorization'] = 'Bearer YOUR_TOKEN'を含むnet/httpのコードが生成されます。curl2codeは-H "Authorization: Bearer ..."と--oauth2-bearerフラグの両方からBearerトークンを検出します。Basic authの場合は、-u user:passを使用してください。
RubyでContent-Typeヘッダーを設定する方法は?
curl2codeはcurl -H "Content-Type: application/json" URLを、適切なヘッダーreq['Content-Type'] = 'application/json'を含むnet/httpのコードに変換します。-dデータの場合、curlはデフォルトでapplication/x-www-form-urlencodedを使用し、-Fフォームアップロードの場合はmultipart/form-dataを使用します。curl2codeはそれぞれを正しいnet/http APIにマッピングします。