Android エミュレータで Flutter の HTTPS 通信をキャプチャする方法
アップデート:2026 年 1 月 12 日
Proxyman 6.4.0 で、Android エミュレータの自動セットアップ機能が追加されました。数回のクリックだけで、Android エミュレータ上の Flutter アプリから HTTPS 通信をキャプチャできるようになりました。
元の記事
Android エミュレータで Flutter アプリの HTTPS 通信をキャプチャしようとしたことがあるなら、その大変さはご存じでしょう。iOS と違って Android では驚くほど難しく、そこに Flutter の複雑さが重なります。
このガイドでは、Proxyman 6.4.0 を使って正しく設定する方法を説明します。
課題
Android エミュレータ上の Flutter からのネットワーク通信をデバッグするのは、次のいくつかの理由から難しいです:
- Flutter はシステムのプロキシ設定を無視します — Dart の HttpClient はデフォルトではシステムのプロキシを使わないため、エミュレータにプロキシを設定しても効果がありません。
- Android の証明書の信頼 — Android 7 以降、ユーザーがインストールした証明書はデフォルトでは信頼されません。アプリのネットワークセキュリティ設定を変更する必要があります。
- 手動設定は面倒です — adb での証明書のインストール、Wi-Fi プロキシの設定、XML ファイルの編集…と、失敗しかねない手順が多くあります。
Proxyman 6.4.0 では、Android エミュレータの自動セットアップによって手間が省けますが、通信をプロキシ経由にするには、Flutter のコードも設定する必要があります。

前提条件
- Proxyman macOS 6.4.0 以降
- Android エミュレータ(API 24 以降)を含む Android Studio
- Flutter プロジェクト
✅ 新しい方法
- Android Studio で Android エミュレータを開きます。Play Store 版ではなく、Google APIs 版であることを確認してください。
- Proxyman で Certificate Menu → Install Certificate on Android → Emulator を選択します。
- 「Install Proxyman VPN」のチェックボックスがオンになっていることを確認します。
- 「Override all Emulators」ボタンをクリックします。

以上です。adb コマンドを手動で実行する必要も、Android の設定画面を操作する必要もありません。
- この時点で、Android エミュレータに新しいローカル VPN がインストールされます。「Start」ボタンをクリックして VPN を開始しましょう。
- VPN が動作していて、ステータスが「Connected」になっていることを確認できます。

- 次に、Android エミュレータで Flutter アプリを実行します。
- Proxyman で HTTPS 通信がキャプチャされていることを確認できます。

⚠️ 従来の方法
Proxyman 6.3.0 以前を使っている場合は、従来の方法に従ってください。
手順 1:Flutter コードでプロキシを設定する
Flutter はシステムのプロキシ設定を使わないため、コード内で HTTP クライアントを手動で設定する必要があります。
使用している HTTP ライブラリに応じて、次のように設定します:
http パッケージを使う
import 'dart:io';
import 'package:http/io_client.dart';
// Use your Mac's IP address (shown in Proxyman's Android setup guide)
// For emulator, you can use 10.0.2.2 which points to your host machine
String proxy = '10.0.2.2:9090';
HttpClient httpClient = HttpClient();
httpClient.findProxy = (uri) {
return "PROXY $proxy;";
};
// Allow Proxyman's certificate
httpClient.badCertificateCallback =
((X509Certificate cert, String host, int port) => true);
IOClient myClient = IOClient(httpClient);
// Now use myClient for your requests
var response = await myClient.get(Uri.parse('https://api.example.com/data'));
Dio を使う
import 'dart:io';
import 'package:dio/dio.dart';
import 'package:dio/io.dart';
String proxy = '10.0.2.2:9090';
Dio dio = Dio();
dio.httpClientAdapter = IOHttpClientAdapter(
createHttpClient: () {
final client = HttpClient();
client.findProxy = (url) => 'PROXY $proxy';
client.badCertificateCallback = (cert, host, port) => true;
return client;
},
);
// Now use dio for your requests
var response = await dio.get('https://api.example.com/data');
ヒント:10.0.2.2 は Android エミュレータ固有のエイリアスで、ホストマシンの localhost を指します。Mac で動作している Proxyman に接続する最も簡単な方法です。
badCertificateCallback は開発中にのみ有効にしてください。本番環境へリリースする前に削除してください。
手順 2:Proxyman で Android エミュレータをセットアップする
ここからは簡単な作業です。Proxyman 6.4.0 では、Android エミュレータを自動で設定できます:
- Android Studio で Android エミュレータを開きます
- Proxyman で Certificate Menu → Install Certificate on Android → Emulator を選択します
- 「Override all Emulators」ボタンをクリックします。

以上です。adb コマンドを手動で実行する必要も、Android の設定画面を操作する必要もありません。
手順 3:Flutter アプリを実行する
- Proxyman が起動していることを確認します
- Android エミュレータで Flutter アプリを実行します:
flutter run
- アプリでいくつかネットワークリクエストを発生させます
- Proxyman を確認します。Flutter アプリからの HTTPS 通信が表示されているはずです
確認したいドメインで SSL Proxying を有効にするのを忘れないでください。Proxyman でドメインを右クリックし、"Enable SSL Proxying" を選択します。
トラブルシューティング
通信は表示されるのに SSL エラーが出る
- 従来の設定を使っている場合は、デバッグ用の HTTP クライアントが Proxyman の証明書を受け入れるか確認してください
- 証明書がインストールされているか確認します:Android Settings → Security → Encryption & Credentials → Trusted Credentials → User タブ
- エミュレータを再起動して、もう一度試してください
Proxyman に通信が表示されない
- Flutter コードのプロキシ設定を再確認してください
10.0.2.2:9090を使っていることを確認してください(localhost ではありません)- Proxyman が起動していて、ポート 9090 で待ち受けていることを確認してください
アプリがクラッシュする、またはネットワークリクエストが失敗する
badCertificateCallbackが正しく設定されているか確認してください- エミュレータがインターネットに接続できることを確認してください(エミュレータで Chrome を開いてみてください)
まとめ
Android エミュレータで Flutter の HTTPS をキャプチャするには、次の手順が必要です:
- Flutter の HTTP クライアントのコードでプロキシを設定する
- デバッグ環境でのみ Proxyman の証明書を信頼する
- Proxyman の Android エミュレータ向け自動セットアップを使う
- アプリを実行して通信を確認する
設定が済めば、Proxyman のデバッグツール(Breakpoint、Map Local、Scripting)をすべて使って、Flutter アプリのネットワーク層をテスト・デバッグできます。
作業が終わったら、Android Emulator のセットアップウィンドウで Revert All Changes を使うか、エミュレータからテスト用の VPN とプロキシを削除してください。badCertificateCallback や、すべての証明書を受け入れるルールを本番環境に含めてはいけません。これらの近道はローカルのデバッグビルドでは便利ですが、リリースビルドを安全でなくしてしまいます。
次のステップ
- Flutter の iOS アプリから HTTPS をキャプチャする — iOS シミュレータと実機向けの同様のガイド
- Android エミュレータのセットアップガイド — ネイティブ Android アプリ向けの詳しい解説
- React Native アプリから HTTPS をキャプチャする — React Native も使っている場合
- Proxyman Flutter のドキュメント — 技術リファレンス全体
Proxyman は、開発者が iOS、Android、シミュレータ、エミュレータの HTTP/HTTPS 通信をキャプチャして確認できる、高性能な macOS/Windows/Linux アプリです。
https://proxyman.com から入手できます。
