Charles代理SSL连接无法显示主机名,只能显示IP地址。

30

我正在使用Charles来调试我的应用程序-在Android和iOS上都是如此。 有些奇怪的事情发生了,在安装了设备上的Charles CA之后,安全连接中会出现以下问题。

在iOS上,Charles将显示连接列表中主机名的请求,并且看起来很好。

但是,在Android上,它只会显示IP地址。我不得不打开请求并检查主机名标头才能找到主机名,这非常令人烦恼。

有没有什么办法解决这个问题?

3个回答

35

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

前往模拟器的wifi设置,连接到AndroidWifi,然后长按它并选择修改网络。输入您的Charles代理主机名和端口号。它应该连接到代理服务器,您应该能够在请求中看到域名。

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


2
你的绿色勾勾在哪里啊!这个APN的东西对我一点用都没有。 - Stuart Campbell
太棒了!就像在真实设备上使用Charles一样。谢谢你 :) - Lucas P.
非常感谢,APN在AS 3.5和Android 9模拟器上对我不起作用。 - Hermandroid

31
这是因为Android模拟器是虚拟机而不仅仅是像iOS模拟器一样的mac os进程。 要在Android模拟器上查看主机名(已在Android 8.0上测试),您需要前往“设置”->“网络和互联网”->“移动网络”->“接入点名称”->单击访问点并将代理和端口属性设置为您的charles本地地址(您可以在Charles->帮助->本地IP地址中找到它)。
更新:
Google在最新版本的Android模拟器中进行了更改。现在,您需要添加一个新的APN。只需创建一个任意名字的新APN,将APN设置为“http://”,代理设置为10.0.2.2,端口设置为8888。

4
使用最新的Android SDK模拟器,除了以上的步骤,您还需要打开和关闭飞行模式,以使接入点代理生效。这是因为最新SDK中存在一个错误/问题所致。 - user756829
为什么在点击“接入点名称”后,所有设置都被禁用了?没有办法编辑代理和端口属性。 - DiveInto
3
谷歌在最新版的Android模拟器中进行了更改。现在你需要添加一个新的APN(接入点名称)。只需创建一个任意名称的新APN,将APN设置为"http://",代理设置为10.0.2.2,端口设置为8888即可。 - Giovanni Marques
可以用。谢谢! - Artem

4

您需要在运行模拟器的 Android 实际设置中设置代理服务器 IP 和端口,而不是使用模拟器侧边栏。只需长按名为 AndroidWifi 的 Wifi 网络,然后选择 修改网络。将 IP 设置为本地计算机的 IP,将端口设置为 8888。不需要设置 APN!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接