🕵🏻

Android Studio Flamingoで入ったNetwork Inspector traffic interceptionの使い方

2023/04/30に公開

Android Studio Framingo から、Network Inspectorに通信レスポンスのヘッダーやステータスコード、ボディを変更できる機能が入りました。
https://developer.android.com/studio/releases/#network-inspector

ステータスコードやレスポンスヘッダー、ボディなど、さまざまなレスポンスに遭遇したときのアプリの挙動をテストするためのルールを作成・管理することができます。ルールは、アプリに到達する前に、どのような応答を傍受し、どのようにこれらの応答を修正するかを決定します。

使用したAndroid Studio

Android Studio Flamingo 2022.2.1

ルールの作成

Interceptするには、Rulesタブを開き、+で新しいルールを作成します。

ルールは複数作成でき、 チェックボックスを付けるとアクティブになります。

ルールで設定する項目としては、下記の項目があります

  • Origin
  • Response
    • Header rules
    • Body rules

Origin

InterceptするURLの条件を定義します。
Protocol(https/http)とMethod(GET/POST)は必須で、それ以外はOptionalとなります。

Response

どのステータスコードのレスポンスにルールを適用するか設定します。
ルール適用するステータスコードを変更することも可能で、200で返却されたステータスコードを500に変えるということができます。

Header rules

レスポンスヘッダーを書き換えることができます。

Add new headerでは、レスポンスヘッダーを追加することが可能です。

Edit existing headerでは、条件に当てはまったレスポンスヘッダーを書き換えることが可能です。

試しにレスポンスヘッダーの追加/変更を行ってみます。

  • test-headerという名前、TEST222222という値のヘッダーを追加
  • serverという名前のヘッダーの値は、Replaced-Serverという値に書き換え

上記のルールを設定すると、通信時のレスポンスヘッダーに追加、書き換えが行われていることが分かります。

Body rules

レスポンスBodyを書き換えることができます。

下記2つの置換方法があります。

  • Bodyの一部を検索して置換
  • Body全体を置換

Replace entire bodyにチェックすると、Body全体を置換することができます。
しかし、Bodyの一部を検索して置換、はうまく動かず…
Body全体を置換、は正常に動作しました。
↓ レスポンスBody全体を置換した例

気になったこと

端末とPCの接続を切ってもルールが適用されている状態になっており、
ルール適用を外したい場合は、下記どちらかの操作が必要そうでした。

  • Network Inspectorを起動し、ルールのチェックを外す
  • Stop Inspectorsする

Discussion