Charles代理SSL连接不会显示主机名,只显示ips

我正在使用Charles在android和ios上调试我的应用程序。 在我在设备上安装Charles CA之后,在安全连接上发生了一些相当奇怪的事情。

在IOS上,Charles会在连接列表中向主机名显示请求,看起来很棒。

但是,在android上,它只会显示IP。 我必须打开请求并检查主机名标头以找出主机名 – 这非常令人讨厌。

有什么方法吗?

这是因为Android模拟器是一个VM而不仅仅是像iOS模拟器那样的mac os进程。 为了能够使用Android模拟器(在Android 8.0上测试)查看主机名,您必须转到设置 – >网络和Internet – >移动网络 – >接入点名称 – >单击接入点并将代理和端口属性设置为您的查尔斯本地地址(你可以在查尔斯 – >帮助 – >本地IP地址找到它)

更新:

谷歌在最新版本的Android模拟器上改变了这一点。 现在你必须添加一个新的APN。 只需创建一个具有任何名称的新APN,并将APN设置为“http://”,代理到10.0.2.2并将端口设置为8888

API 25+仿真器有一个名为AndroidWifi的模拟wifi接入点: https : //developer.android.com/studio/run/emulator#wi-fi

转到您的仿真器wifi设置,连接到AndroidWifi,然后按住它并选择修改网络。 输入您的Charles Proxy主机名和端口。 它应该连接到代理,您应该在请求中看到域名。

请勿使用模拟器扩展控件中提供的代理设置。

url而不是IP地址

要查看这些IP所代表的实际url,我们可以调整我们的模拟器设置,以便与Charles一起玩。

要执行此操作,请转到您的仿真器设备settings ,然后转到(在Android 8.0上,无论如何) Network & InternetMobile networkAccess Point Names

现在,您可以编辑代理和端口设置,以匹配我们之前在模拟器设置中输入的内容。 完成后,不要忘记单击工具栏中的三个点并保存更改。 现在,再看看查尔斯。 如果您已将应用程序设置为信任Charles证书,那么您应该开始在那里看到一些api url。

请按照完整说明进行操作 – https://medium.com/@daptronic/the-android-emulator-and-charles-proxy-a-love-story-595c23484e02