ガイド

ブレークポイントを設定する モバイルのリクエストに

実機からのリクエストやレスポンスを途中で一時停止し、ダッシュボードで生の HTTP を編集して、続行させる、または中止する。iOS の VPN モードと PAC モード、プロキシ経由の Android、キャプチャ中の Chrome で動作します。

通信を眺めれば、アプリが何を送ったかは分かります。ブレークポイントは、それが届く前に変えることを可能にします。設定したパターンにリクエストやレスポンスが一致すると、それは保留されます。iOS の VPN モードならスマートフォン上のトンネル内で、PAC モードの iOS、Android、ブラウザならプロキシサーバー上で。そしてダッシュボードに、生の HTTP を編集できるライブの一時停止として現れます。編集してから決めます。変更の有無にかかわらず続行するか、中止するか。

どちらの場合もダッシュボードが操縦席で、スマートフォンに触れる必要はありません。パターンはホスト+パスの単純なワイルドカード、ワンクリックの一括捕捉ですべてを止められ、放置された一時停止は自動で期限切れになるので、席を外した後に残ったブレークポイントがスマートフォンの通信を永久に塞ぐことはありません。

始める前に

必要な もの

すでにキャプチャ中のスマートフォンと、その上で復号済みの、一時停止したいホスト。

  • キャプチャがオンのペアリング済みスマートフォン。どちらのモードの iOS でも、プロキシ経由の Android でも構いません。

  • その端末の SSL プロキシリストにあるホスト。パス付きのパターンには復号済みのホストが必要で、暗号化されたホストは名前でしか一致させられません。

  • 開いたダッシュボードと、一時停止ごとに約 60 秒の注意力。それがタイムアウトです。

  • 任意で、新しいトークンを保持する環境変数。シークレットを貼り付けずに呼び出しを再実行できます。

ステップ・バイ・ステップ

順番どおりに 進める

7 つのステップ:復号、パターン設定、発生、編集、判断、そしてレスポンス側と再実行。

  1. 01

    まずホストを復号する

    フィードでそのエンドポイントへの実際のリクエストを見つけ、ボディが読めることを確認します。読めなければ、ホストを端末の SSL プロキシリストに追加して呼び出しを再度発生させます。iOS の VPN モードでは、トンネルをオフ・オンして新しいリストを読み込ませてください。ブレークポイントはホストとパスで一致し、パスは復号済みのホストにしか存在しません。

  2. 02

    リクエストパターンを追加して保存する

    設定ナビゲーションから Breakpoints ページを開きます。送信リクエストをサーバーに届く前に止めるならリクエストパターンを、アプリが見る前に返答を止めるならレスポンスパターンを追加します。ブロックルールと同じホスト+パスのワイルドカード構文です。Save patterns をクリックしてキャプチャ経路に反映します。端末ごとのパターンは端末の下の Breakpoints にあり、グローバルの設定はすべての端末のフォールバックです。

    急いでいるなら、Pause all requests がワンクリックの一括捕捉で、パターンなしにすべての送信リクエストを一時停止します。Resume all で元に戻せます。

    2 つのパターン — リクエスト側とレスポンス側に 1 つずつ
    text
    # Request patterns (pause before the request leaves the phone)
    api.example.com/v1/checkout/*
    
    # Response patterns (pause the reply before the app sees it)
    *.example.com/v1/session
  3. 03

    スマートフォンから呼び出しを発生させる

    アプリを使います。リクエストが一致すると停止し(VPN モードでは iOS のトンネル拡張内、それ以外はプロキシサーバー上)、ダッシュボードの Live pauses に表示され、ステータスのピルがライブ接続の健全性を示します。アプリから見れば、遅いネットワークを待っているだけです。

  4. 04

    生の HTTP を編集する

    一時停止を選び、テキスト領域でリクエストを編集します。メソッド、パス、ヘッダー、ボディ。コンテンツ長は自動で再計算されるので、バイト数を数える必要はありません。Host ヘッダーは編集できますがリクエストの経路は変えません。サーバーに見えるものが変わるだけで、リクエストの行き先は変わりません。

    一時停止中のリクエストがエディタでどう見えるか
    http
    POST /v1/checkout/confirm HTTP/1.1
    Host: api.example.com
    Content-Type: application/json
    Authorization: Bearer <redacted>
    
    {"amount": 4900, "currency": "eur", "coupon": null}
  5. 05

    60 秒以内に続行、中止、またはリセットする

    Continue は編集の有無にかかわらずリクエストを進めます。Abort は破棄し、アプリには失敗として見えます。Reset は編集を捨ててキャプチャした原本に戻します。判断はライブの制御チャネルを通じて一時停止を所有する端末に届きます。60 秒以内に誰も判断しなければ一時停止は自動で期限切れになり元のリクエストが通過するので、放置したブレークポイントがスマートフォンを永久に塞ぐことはありません。

  6. 06

    レスポンス側も一時停止する

    レスポンスパターンは、アプリが受け取る前にサーバーの返答を保留します。サーバーが決して送らないフィールド、決して返さないステータス、少しだけ間違ったボディに対してアプリがどう振る舞うかを、モックルールなしで、サーバーに触れずにテストできます。編集し、続行し、アプリの反応を観察してください。

  7. 07

    Resend で再実行し、繰り返す

    キャプチャ済みリクエストのアクションバーから、Resend はそれを端末またはプロキシからそのまま再送し、新しいキャプチャに再送済みの印を付けます。Edit and Resend はメソッド、URL、ヘッダー、ボディを先に調整するためのモーダルを開きます。URL、ヘッダー、ボディ内の二重波括弧のプレースホルダーは、リクエストが出る直前に端末の環境変数で解決されるので、シークレットを貼り付けずに新しいトークンで呼び出しを再実行できます。フィードの Resent フィルターで再実行と原本を分け、両者を組み合わせましょう。リクエストを一時停止し、コピーし、望む応答が得られるまで Edit and Resend でバリエーションを送るのです。

トラブルシューティング

うまくいかない ときは

何も止まらないなら、パターンが見えないものに一致しようとしているか、保存されていないかです。

  • リクエストが止まらずに通過する

    その端末でホストが復号されているか、Save patterns をクリックしたか、ワイルドカードがフィード行に表示されるホストとパスに正確に一致するかを確認してください。端末ごとの設定はグローバルのフォールバックより優先されるので、スマートフォンがどちらを使っているかも確認します。

  • 編集を終える前に一時停止が消えた

    60 秒でタイムアウトし、原本が続行されました。以前のキャプチャから貼り付けるなどして編集を用意しておき、呼び出しを再度発生させてください。

  • Host ヘッダーを変えてもリクエストが別の場所に送られない

    仕様です。このヘッダーは編集できますが経路は変えません。別のサーバーに送るには、別の URL で Edit and Resend を使うか、端末の出口を外部プロキシ経由にしてください。

  • Pause all requests が意図より多くを止めてしまった

    設定したスコープ内のすべての送信リクエストを捕捉する一括設定です。Resume all をクリックし、本当に見たい 1 つのホストに絞ったリクエストパターンを追加してください。

  • ステータスのピルがライブ接続の切断を示している

    制御チャネルが再接続するまで Continue や Abort は端末に届きません。ピルの回復を待ってください。その間に期限切れになった一時停止は原本として続行します。

よくある質問

よくある 質問

Wi-Fi プロキシなしの iOS でもブレークポイントは使えますか?

はい。VPN モードでは端末上のトンネルがネットワーク拡張内で同じ「一時停止・編集・続行」のサイクルを、Wi-Fi でもモバイル回線でも実行します。PAC モードではプロキシサーバー上で実行します。ダッシュボードの見え方はどちらも同じです。

リクエストではなくレスポンスを一時停止できますか?

はい。レスポンスパターンはアプリが見る前にサーバーの返答を保留するので、ステータス、ヘッダー、ボディを編集してアプリの対処を観察できます。

毎回自動で変更を適用したい場合は?

それはブレークポイントではなく、ブロックルールかスクリプトの仕事です。ルールは一致のたびに自動で応答し、スクリプトはリクエストごとにバイトを書き換えます。ブレークポイントは、毎回自分で判断したい場面のためのものです。

リクエストを止めて、 気を変える

パターン 1 つ、一時停止 1 回、編集 1 回。手元のスマートフォンは、テストしたかったまさにそのリクエストや返答を受け取ります。

Ask your mate