我想分析我为Android开发的应用的https流量 Charles Web Debugging Proxy是我想要使用的工具。我有以下系统配置:
我已经在StackOverflow上阅读过几篇文章,例如
但我仍未实现目标。我走过了所有重要的步骤:
~/Library/Android/sdk/tools/emulator -netdelay none -netspeed full -http-proxy <IP_FROM_DEVICE_WITH_CHARLES_PROXY_INSTALLED>:8888 -avd Nexus_5_API_23
我可以毫无问题地阅读Charles Proxy中的所有http流量。我也可以阅读https流量但 Charles仅列出IP地址。有像
这样的条目https://173.194.65.188:5228
所以ip地址没有解决。如何获得真正的https网址?我是否必须在某处为https激活DNS?
答案 0 :(得分:3)
我也发现这是一个问题。当我想通过Charles Proxy调试网络流量时,我的解决方案是切换到Genymotion模拟器。 Genymotion模拟器将为您提供Charles中的url(s)与ip(s)。
在Genymotion模拟器中,您将Wifi代理主机名配置为'10 .0.3.2',代理端口输入'8888'(*假设端口8888是您在Charles Proxy中配置的侦听端口)。
答案 1 :(得分:1)
有一些说明可以让Android模拟器在这里与Charles合作:
https://stackoverflow.com/a/35577864/2832027
这是非常不可靠的。如果模拟器工作正常,则需要将模拟器放入和退出飞行模式,然后停止工作。
以下是上述帖子中的步骤:
使用/{path to your android
sdk directory}/tools/emulator -avd Nexus_5X_API_23 -http-proxy
http://192.168.2.38:8888
从终端启动模拟器,其中-avd
值是您的名称
模拟器和-http-proxy
值是Charles的IP地址:
帮助&gt; SSL代理&gt;在移动设备上安装Charles Root证书
设备或远程浏览器。
在Charles中,应设置以下内容:
代理&gt;代理8888 Enable transparent proxying
应该是
检查;代理&gt;应检查macOS代理
在模拟器中, `设置&gt;更多(无线&gt;蜂窝网络&gt;接入点&gt; T-Mobile US(或其他任何网络)将代理设置为 10.0.2.2和端口到8888
在模拟器中,Settings > Developer Options > Use legacy DHCP
客户端应该打开。
在模拟器中,打开和关闭飞行模式
另外,如果您在使用Charles 7(API 24)及更高版本时遇到问题,请参阅此内容。 https://android.jlelse.eu/android-nougat-charlesing-ssl-network-efa0951e66de