web-dev-qa-db-ja.com

CharlesプロキシSSL接続にはホスト名は表示されず、ipsのみが表示されます

Charlesを使用してアプリをデバッグしています-Androidとiosの両方で。デバイスにCharles CAをインストールした後、セキュリティで保護された接続で何か奇妙なことが起こります。

IOSでは、Charlesは接続のリストにホスト名への要求を表示し、見栄えがします。

ただし、Androidでは、IPのみが表示されます。リクエストを開いてホスト名ヘッダーをチェックし、ホスト名を把握する必要があります。これはかなり面倒です。

これを回避する方法はありますか?

25
azv

これは、AndroidエミュレーターがVMであり、iOSシミュレーターのようなmacosプロセスだけではないためです。Androidエミュレーター(Android 8.0)でテスト済み)[設定]-> [ネットワークとインターネット]-> [モバイルネットワーク]-> [アクセスポイント名]-> [アクセスポイント]をクリックして設定する必要がありますチャールズのローカルアドレスへのプロキシとポートのプロパティ(チャールズ->ヘルプ->ローカルIPアドレスで見つけることができます)

更新:

Googleは、Androidエミュレーターの最後のバージョンでこれを変更しました。新しいAPNを追加する必要があります。任意の名前でAPNを「http://」に設定して新しいAPNを作成するだけです。 10.0.2.2へのプロキシと8888へのポート

26

API 25+のエミュレーターには、AndroidWifiと呼ばれるシミュレートされたwifiアクセスポイントがあります: https://developer.Android.com/studio/run/emulator#wi-fi

エミュレーターのwifi設定に移動し、AndroidWifiに接続し、それを押したまま、[ネットワークの変更]を選択します。 CharlesProxyのホスト名とポートを入力します。プロキシに接続し、リクエストにドメイン名が表示されるはずです。

エミュレータの拡張コントロールで提供されるプロキシ設定を使用しないでください。

19
Simon

エミュレータのサイドバーを使用せずに、エミュレータで実行されるAndroid)の実際の設定内でプロキシ設定(IPとポート)を設定する必要があります。AndroidWifiそしてModify network。 IPをローカルコンピューターのIPに設定し、ポートを8888に設定します。APNを設定する必要はありません。

1
Foti Dim

IPアドレスの代わりにURL

これらのIPが表す実際のURLを確認するには、エミュレーターの設定を微調整して、CharlesとNiceを再生します。

これを行うには、エミュレータのデバイスsettingsに移動してから、(on Android 8.0、とにかく)Network & InternetMobile networkAccess Point Names

これで、プロキシとポートの設定を編集して、エミュレータの設定で以前に入力したものと一致させることができます。それが終わったら、ツールバーの3つのドットをクリックして、変更を保存することを忘れないでください。さて、チャールズをもう一度見てください。 Charles証明書を信頼するようにアプリを設定した場合は、そこにいくつかのAPIURLが表示されるようになります。

こちらの完全な手順に従ってください- https://medium.com/@daptronic/the-Android-emulator-and-charles-proxy-a-love-story-595c23484e02

0
yoAlex5