curl を R に変換
curl2code は、httr パッケージを使用して curl コマンドを R コードに変換します。変換は完全なプライバシー保護のため、WebAssembly を介してブラウザ内で実行されます。Python については、curl to Python 変換ツールをご確認ください。Julia については、curl to Julia をご覧ください。以下に、実用的な R の例を示します。
ブラウザから curl をコピーする方法
- 1
デベロッパーツールを開く
F12 キーを押すか、Ctrl+Shift+Iを使用してブラウザのデベロッパーツールを開きます。
- 2
ネットワークタブに移動
ネットワークタブをクリックし、HTTP リクエストをトリガーするアクションを実行します。
- 3
cURL としてコピー
リクエストを右クリック → コピー → cURL としてコピー を選択します。その後、上に貼り付けてください。
よくある質問
R httr とは何ですか?
httr は、Web API とのやり取りのために設計された、R で最も人気のある HTTP クライアントパッケージです。自動的なコンテンツタイプ処理や OAuth サポートを備えた GET()、POST()、PUT() などの関数を提供します。install.packages("httr") でインストールできます。curl2code は、次世代の後継である httr2 もサポートしています。
httr、httr2、curl パッケージのどれを使うべきですか?
httr は安定しており広く使用されています。ほとんどの R チュートリアルで使用されています。httr2 は、パイプ構文、組み込みのリトライ、レート制限を備えた現代的な代替品です。curl パッケージは低レベルの libcurl ラッパーです。新しいプロジェクトには httr2 を、互換性のためには httr を使用してください。同様のデータサイエンスワークフローについては、curl to Python または curl to Julia を参照してください。
R で認証を処理するにはどうすればよいですか?
Bearer 認証の場合:GET(url, add_headers(Authorization = paste("Bearer", token)))。Basic 認証の場合:GET(url, authenticate(user, pass))。httr は oauth1.0_token() や oauth2.0_token() を介した OAuth 1.0 および 2.0 もサポートしています。curl2code は -u およびヘッダーフラグを R の構文に変換します。
R でマルチパートフォームデータを送信するにはどうすればよいですか?
POST(url, body = list(file = upload_file("doc.pdf"), desc = "My file"), encode = "multipart") を使用します。httr はマルチパートのバウンダリと Content-Type を自動的に処理します。JSON ボディの場合は encode = "json" を使用します。curl2code は -F フラグを httr のマルチパート構文に変換します。
R で HTTP エラーを処理するにはどうすればよいですか?
2xx 以外でエラーをスローするには stop_for_status(response) を、警告には warn_for_status() を、メッセージには message_for_status() を使用します。ステータスは status_code(response) で確認します。プログラムによるエラー処理には tryCatch() でラップします。httr2 は設定可能なエラー動作のために req_error() を使用します。
R で JSON レスポンスを解析するにはどうすればよいですか?
自動的な JSON からリストへの解析には content(response, "parsed") を、より詳細な制御には content(response, "text") と jsonlite::fromJSON() を使用します。jsonlite は JSON を R のデータフレーム、リスト、ベクトルに変換します。データ分析パイプラインでは、直接 tibble や dplyr にパイプします。
R でタイムアウトを設定するにはどうすればよいですか?
30秒のタイムアウトには GET(url, timeout(30)) を使用します。httr2 では req_timeout(req, 30) を使用します。httr2 でのリトライは:req_retry(req, max_tries = 3, backoff = ~ 2)。httr には組み込みのリトライ機能がないため、tryCatch() を使用したループを使用します。これらは curl の --max-time オプションに対応します。
R でプロキシを使用するにはどうすればよいですか?
GET(url, use_proxy("proxy", 8080, username, password)) を使用します。httr は libcurl のプロキシオプションをラップしています。また、http_proxy および https_proxy 環境変数も尊重します。SOCKS プロキシの場合は、スキームを指定します:use_proxy("socks5://proxy:1080")。curl2code は -x フラグを R のプロキシ設定に変換します。
RでJSONボディを含むPOSTリクエストを送信する方法は?
curl2codeを使用して、curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URLのようなcurlのPOSTコマンドをRに変換します。生成されたコードではPOST(url, body = data, encode = 'json')を使用します。curl2codeはJSONコンテンツを含む-d/--dataフラグを自動的に検出し、httrのコードに適切なContent-Typeヘッダーを設定します。
RでBearerトークン認証を追加する方法は?
curl -H "Authorization: Bearer YOUR_TOKEN" URLをcurl2codeに渡すと、認証ヘッダーadd_headers(Authorization = 'Bearer YOUR_TOKEN')を含むhttrのコードが生成されます。curl2codeは-H "Authorization: Bearer ..."と--oauth2-bearerフラグの両方からBearerトークンを検出します。Basic authの場合は、-u user:passを使用してください。
RでContent-Typeヘッダーを設定する方法は?
curl2codeはcurl -H "Content-Type: application/json" URLを、適切なヘッダーcontent_type_json()を含むhttrのコードに変換します。-dデータの場合、curlはデフォルトでapplication/x-www-form-urlencodedを使用し、-Fフォームアップロードの場合はmultipart/form-dataを使用します。curl2codeはそれぞれを正しいhttr APIにマッピングします。