モックレスポンス

ChuteはマッチしたHTTP/HTTPSリクエストに対してモックデータを返すことができます。復号されたHTTP/2ストリームの場合、モックレスポンスはリクエストを転送せずにローカルで応答されます。HTTP/1.1リクエスト(平文HTTPプロキシとMitM HTTP/1.1)の場合、リクエストは引き続き実際のサーバーに送信され、実際のレスポンスがクライアントに届く前にモックデータに置き換えられます。これはテスト、開発、またはカスタムレスポンスで不要なコンテンツをブロックするのに役立ちます。

モックレスポンスルールは[Map Local]セクションで定義されます。

1つのリクエストに適用されるモックレスポンスルールは1つだけです — URLパターンにマッチした最初のルールが使用されます。

Map Local形式

ローカルファイル、インラインテキスト、またはbase64エンコードされたコンテンツでモックレスポンスを提供し、ステータスコードやヘッダーも指定する場合:

[Map Local]
^https://example\.com/api.* data="/path/to/mock-response.json"
^https://example\.com/page.* data="/path/to/page.html" header="SGVhZGVyOiBWYWx1ZQ=="
^https://example\.com/pixel.* base64="R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
^https://example\.com/api/v2.* data-type=text data="rate limited" status-code=429 header="Content-Type: text/plain|Retry-After: 30"
^https://example\.com/beacon.* data-type=tiny-gif

注意: 正規表現はリクエストの完全なURL — 復号後はhttps://…、Chuteが平文HTTPプロキシとして動いている場合はhttp://… — のどの位置でもマッチするので、^https://example\.comだけでそのホストのすべてのパスとクエリ文字列が対象になり、末尾に.*を付ける必要はありません。パスだけと照合されることはないため、^/apiのようなパターンはマッチしません。パターンの大文字・小文字は保持されるので、\S、\D、\W、\Bは書いたとおりの意味になります。マッチング自体は大文字・小文字を区別しません。

行頭またはスペースの直後に置かれた#や//は、ダブルクォートの中でない限り、行末まで続くコメントを開始します。;はコメントになりません。コメントを参照してください。

Map Localパラメータ

パラメータ 説明
data="/path/to/file" レスポンスボディとして提供するファイルパス。ファイルはリクエスト時に読み取られます。data-typeを指定した場合はボディそのものになります(下記参照)。
`data-type=file\ text\ base64\ tiny-gif` data=の読み方: fileはパス(デフォルト)、textは値そのものがボディ、base64は値をbase64デコード、tiny-gifは組み込みの1×1 GIFでdata=は不要です(header=でContent-Typeを指定しない限りimage/gifとして送信)。
base64="<encoded>" Base64エンコードされたレスポンスボディコンテンツ(data-type=base64と同じ)。
status-code=<code> モックレスポンスのステータスコード(200〜599)。デフォルトは200。範囲外のコードを書くと行全体が無効になり、設定エラーとして報告されます。
`header="Key: value\ Key2: value2"` カスタムレスポンスヘッダー。ペアは`\ で区切り、各ペアは最初のコロンで分割されるため、値自体にコロン(URLなど)を含められます。従来のbase64形式(base64エンコードしたKey:Value\n`行)も引き続き使用できます。

ルールにはボディの指定が必要です: data=(ファイル、またはdata-type付きのテキスト/base64)、base64=、またはdata-type=tiny-gif。data=なしのdata-type=textは空のボディになります。ボディを生成できないルール(ボディのパラメータがない、ファイルを読めない)は応答せず、リクエストはそのままサーバーに送られ、後続のモックレスポンスルールも試されません。

注意: どちらの形式でも、各ヘッダーは最初のコロンで分割され、名前と値の前後の空白は取り除かれます。コロンのない行は無視されます。

Chuteが自分で生成する応答 — Map Local、スクリプトのresponse、URL書き換えとREJECT系ポリシーの応答およびエラーページ — はHTTPに従います。HEADリクエストへの応答はヘッダーだけで、Content-LengthはGETの場合と同じです。ステータスが204、205、304の応答は、ボディもContent-Lengthも持ちません。

テンプレート変数

data=またはbase64=を使用する場合、レスポンスボディはテンプレート変数の置換をサポートします:

変数 置換後
{{url}} ルールが見たままの完全なリクエストURL
{{host}} リクエストホスト名
{{path}} 相対URLパス
{{method}} HTTPメソッド
{{ua}} User-Agentヘッダー値

モックレスポンスファイルの例(response.json):

{
    "requested_url": "{{ "{{url}}" }}",
    "host": "{{ "{{host}}" }}",
    "method": "{{ "{{method}}" }}"
}

注意: HTTPSリクエストの場合、マッチするホスト名に対してMitM復号が有効になっている必要があります。MitMなしのHTTPSトラフィックに対するモックレスポンスルールは無視されます。平文HTTPリクエストに応答するのは、それがChuteのHTTPプロキシを経由して届いた場合だけです。TUNインターフェースから届いた平文HTTPは手を加えずに転送されます。Chute Androidは、設定でシステムHTTPプロキシをオンにしない限り、すべてのトラフィックをTUNに通します。このオプションはChuteのHTTPプロキシをアプリに渡すものです(Android 10以降。デフォルトはオフ)。

注意: data= の先のファイルは、Chuteを動かしているデバイスがリクエスト時に読みます。Chute DashboardからiPhoneにモックレスポンスルールを追加するとき、Mac上のパスはスマートフォンにとって無意味です — 代わりに base64= で内容をインラインにするか、ファイルをURLで配信してURL書き換えを使ってください。

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-29 21:57:05

本ページは英語版からの翻訳です。内容に相違がある場合は、英語版が優先されます。

results matching ""

    No results matching ""