我阅读了关于这个主题的所有主题,并且使用genymotion设置查尔斯的说明都是一样的:
http://rexstjohn.com/using-genymotion-charles-proxy/
In your Genymotion Android emulator…
Settings -> Wifi -> Press and hold your active network
Select “Modify Network”
Select “Show Advanced Options”
Select “Proxy Settings -> Manual”
Set your Proxy to: 10.0.3.2 (Genymotion’s special code for the local workstation)
Set your Port to: 8888
Press Save
My set up is:
-
在Mac OS上运行的localhost开发Spring服务器
-
我的genymotion模拟器上安装了一个Android应用程序 . genymotion模拟器通过ip 10.0.3.2(How to access localhost from a Genymotion android emulator?)与我的本地开发服务器通信
我不确定说明是否旧,但我遇到的问题是从我的genymotion模拟器流出的流量记录在Charles Proxy中,但它没有到达我的localhost服务器 . 我在我的服务器和我的应用程序之间没有使用任何SSL加密 .
这是我在genymotion wifi屏幕内的设置:
这就是我的Charles Proxy的样子 - 你可以看到它是“连接到远程主机” . 它永远连接,然后最终在我的Android应用程序端给我一个503错误,没有返回任何内容:
如果我关闭Charles Proxy,应用程序连接我的localhost服务器没有问题,所有调用都成功返回 . 我认为这与Charles有关,它阻止我的应用程序与我的localhost服务器进行通信 .
在Postman中,如果我尝试查询我的Android应用程序尝试查询的相同URL,它可以成功运行并且结果也成功记录在Charles中:
http://localhost:8443/ + my api endpoint **OR** http://localhost.charlesproxy.com:8443/ + my api endpoint
在Postman中查询和在我的Android应用程序中查询之间的唯一区别是我的应用程序点击此URL 10.0.3.2而不是因为我正在使用模拟器:
http://10.0.3.2:8443/ + my api endpoint
我还在我的访问控制设置中添加了10.0.3.2:
我可以进入我的android genymotion模拟器互联网浏览器并搜索像www.msn.com这样的网站,它将成功返回并在查尔斯内记录结果,但我不是在寻找或准备支付50美元的工具来记录我的android浏览器流量 . 我需要它来使用我的Android应用程序,以便我可以调试我的应用程序 . 我不知道如何解决这个问题,这里有人知道我是否遗漏了什么?
EDIT:
如果有人想知道,我在Charles'常见问题解答中看过这篇关于Localhost流量未出现在Charles中的帖子:
https://www.charlesproxy.com/documentation/faqs/
但是,我不能将Genymotion使用的10.0.3.2更改为http://localhost.charlesproxy.com/,所以我认为这不会解决我的问题 .
1 回答
所以我现在正在玩Genymotion模拟器和Charles,我实际上设法让Charles记录本地主机流量 .
类似于我通过Postman查询的方式:
我刚刚将所有api endpoints 的主机部分更改为:
http://localhost.charlesproxy.com:8443/
并且它有效 .