HAR→cURL変換ツール
ブラウザのHARファイルに記録されたリクエストを、そのまま実行できるcURLコマンドに変えます。
HAR→cURL変換ツールは完全にブラウザ内で動作します。アーカイブは端末上で解析され、含まれるセッションCookieが外へ出ることはありません。
HARファイルビューアーを開く
HARをcURLに変換 について
HAR→cURL変換ツールは、ブラウザの開発者ツールが書き出すネットワークアーカイブを読み、その中のどのリクエストでもターミナルに貼れるコマンドへ変えます。「ブラウザでは動くのにスクリプトでは動かない」の溝を埋める最速の方法です。ヘッダーもメソッドもリクエストボディも、ブラウザが送った通りに引き継がれます。丁寧に扱う点が2つあります。シェルのクォートはシングルクォート内のシングルクォートにPOSIXのエスケープを使うため、アポストロフィを含むJSONボディでコマンドが静かに壊れません。そしてHARには生きたセッションCookieが載るので、スイッチひとつでCookieとAuthorizationヘッダーを外せます。
機能
- あらゆるHARエクスポートを読み、全リクエストを一覧
- URL・メソッド・ステータスコードで絞り込み
- 1件でも、絞り込んだ全件でも一括変換
- クォートやアポストロフィを含むボディにPOSIX準拠のクォート
- Cookie・Authorization・APIキー系ヘッダーをスイッチで除去
- ブラウザ管理のヘッダーとHTTP/2疑似ヘッダーを破棄
HARをcURLに変換 の使い方
- 開発者ツールのネットワークパネルで「内容を含めてHARとして保存」を選びます
- .harファイルをここへドロップするか、内容を貼り付けます
- リストからリクエストを選ぶか、「すべて」のままで全件変換します
- 共有するならCookieと認証の除去をオンにしてコピーします
例
入力
POST https://api.example.com/login with a JSON body
出力
curl 'https://api.example.com/login' \
-H 'Content-Type: application/json' \
--data-raw '{"user":"jo"}' \
--compressed
ボディ付きPOSTに-Xは出力されません。--dataがすでにPOSTを含意するからです。
よくあるエラーとトラブルシューティング
- コマンドは走るがサーバーが401や403を返す。 — おそらく認証ヘッダーを除去したか、載っていたセッションが期限切れです。除去オプションを外し、ログインした状態でHARを書き出し直してください。
- このJSONはHARファイルではないと言われる。 — HARはトップレベルにlogオブジェクトとentries配列を持ちます。保存したレスポンスボディやコピーしたJSONにはその構造がありません — 「HARとして保存」で書き出し直してください。
- コマンドにリクエストボディがない。 — 内容を含めて書き出してください。含めない場合HARはヘッダーだけを記録しボディを省くので、--data-rawに入れるものがなくなります。
よくある質問
- ブラウザからHARファイルを書き出すには?
- 開発者ツールを開き、ネットワークパネルでリクエストを再現し、任意の行を右クリックして「内容を含めてすべてをHARとして保存」を選びます。Chrome・Edge・Firefox・Safariのいずれにも同等の機能があります。
- 生成されたcURLコマンドに-X POSTがないのはなぜ?
- --data-rawがすでにPOSTを含意しており、その上に-Xを重ねるとcURLのリダイレクト処理が変わりうるからです。メソッドフラグはPUT・PATCH・DELETEなど本当に必要なときだけ出力されます。
- HAR由来のcURLコマンドを共有しても安全?
- 既定では危険です — HARは生きたセッションCookieとAuthorizationヘッダーを捕らえており、実質パスワードです。先に除去オプションをオンにしてください。Cookie・Authorization・一般的なAPIキー系ヘッダーが外れます。
- 変換するときHARファイルはアップロードされますか?
- いいえ。ファイルは完全にブラウザ内で解析されます。HARには捕捉した全リクエストのセッションCookieや個人情報が日常的に含まれるだけに、これは重要です。
関連ツール
すべての ArrayKit ツール