cURLからFetchコンバーター

cURLコマンドをJavaScript fetch() APIコードに変換します。curlフラグを解析します:-X(メソッド)、-H(ヘッダー)、-d/--data(ボディ)、--json、-u(基本認証)、--data-urlencode、-G(データ付きGET)など。

Examples:

cURLからFetchコンバーターの使い方

  1. 1cURLコマンドを入力フィールドに貼り付けます。
  2. 2ツールがすべてのcurlフラグとオプションを自動的に解析します。
  3. 3JavaScriptのfetch()コードが等価のヘッダー、メソッド、ボディとともに生成されます。
  4. 4fetchコードをJavaScriptプロジェクトに直接コピーします。
Zenovayアナリティクス

今、誰がサイトにいるかを把握。

  • リアルタイムの訪問者トラッキング
  • プライバシーファースト、クッキーバナーなし
  • 2分でセットアップ
Zenovayを見る

よくある質問

このコンバーターはどのcurlフラグをサポートしていますか?
-X / --request:HTTPメソッド(GET、POST、PUT、PATCH、DELETEなど)。-H / --header:リクエストヘッダーを追加(複数サポート)。-d / --data / --data-raw:リクエストボディ。--data-urlencode:URLエンコードされたデータ。--json:JSONボディを送信(Content-Typeを自動的に設定)。-u / --user:Basic認証(user:password)。-L / --location:リダイレクトをフォロー(コメントとして含まれる)。--compressed:圧縮されたレスポンスを受け入れます。-b / --cookie:Cookieヘッダー。--form / -F:フォームデータ(マルチパート)。-k / --insecure:SSL検証をスキップ(コメントとして記載)。
curlのfetchの-d/--dataはどのように機能しますか?
curlでは、-dはデフォルトでContent-Type: application/x-www-form-urlencodedでリクエストボディとしてデータを送信します。複数の-dフラグはデータを&で連結します。fetchでは、同等のものはbody: "key=value&other=val"で、一致するContent-Typeヘッダーがあります。curlで--jsonを使用する場合(curl 7.82以上)、Content-Type: application/jsonを設定してJSONボディを送信します。これはfetchのbody: JSON.stringify(data)にマップされます。curlに既に-H "Content-Type: application/json"が含まれている場合、コンバーターはこれを検出し、それに応じてボディをフォーマットします。
基本認証(-u user:pass)はどのように変換されますか?
curl -u username:passwordはHTTP Basic認証を送信します。JavaScriptfetchでは、これはAuthorizationヘッダーにマップされます:Authorization: Basic {base64(username:password)}。コンバーターはfetchコードでbtoa("username:password")を生成します。注:クライアント側のコードに資格情報を埋め込むことは安全ではありません。本番環境での使用は、資格情報をサーバー側で渡すか、環境変数を使用してください。
クッキー(-b/--cookie)について?
curl -b "name=value; other=val"はクッキーをCookieヘッダーとして送信します。これはfetchヘッダーに直接マップされます:"Cookie": "name=value; other=val"。ただし、ブラウザーベースのfetchはクロスオリジンリクエスト(CORS制限)のCookieヘッダーを設定できないことに注意してください。これはセキュリティ機能です。クロスオリジンリクエストのクッキーは、クッキーのドメインとSameSite設定に基づいてブラウザーによって自動的に処理されます。
生成されたfetchコードが手動調整を必要とする可能性があるのはなぜですか?
Curlには、fetchに直接同等物を持たない多くのフラグがあります:--retry(fetchにネイティブ再試行がない)、--max-time/--connect-timeout(setTimeoutでAbortControllerが必要)、--proxy(ブラウザーfetchでサポートされない)、--cert/--key(TLS クライアント証明書、ブラウザーfetchにはない)。コンバーターは最も一般的なフラグを処理します。エッジケースの場合、再試行ロジックでfetchをラップするか、より多くのオプションをサポートするaxiosやgotなどのNode.js HTTPライブラリを使用する必要がある場合があります。