我阅读了所有关于这个主题的帖子,使用 genymotion 设置 charles 的说明都是一样的:
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
我的设置是:
- 在我的 Mac OS 上运行的本地主机开发 Spring 服务器
- 在我的 genymotion 模拟器上安装了一个安卓应用。 genymotion 模拟器通过 ip 10.0.3.2 ( How to access localhost from a Genymotion android emulator? ) 与我的本地开发服务器通信
我不确定说明是否过时,但我遇到的问题是从我的 genymotion 模拟器流出的流量记录在 Charles 代理中,但它只是没有到达我的本地主机服务器。我没有在我的服务器和我的应用程序之间使用任何 SSL 加密。
这是我在 genymotion wifi 屏幕中的设置:
这就是我的 Charles 代理的样子 - 您可以看到它正在“连接到远程主机”。它永远连接,然后最终在我的 Android 应用程序端给我一个 503 错误,没有任何返回:
如果我关闭 Charles Proxy,该应用程序可以毫无问题地连接到我的本地主机服务器,并且所有调用都会成功返回。我认为这与阻止我的应用程序与我的本地主机服务器通信的 Charles 有关。
在 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 这样的网站,它会成功返回并在 Charles 中记录结果,但我不是在寻找或准备支付 50 美元购买记录我的安卓浏览器流量的工具。我需要它与我的 android 应用程序一起使用,以便我可以调试我的应用程序。我不确定如何解决这个问题,这里有人知道我是否遗漏了什么吗?
编辑:
如果有人想知道,我已经阅读了这篇关于 Charles 的关于本地主机流量未出现在 Charles 的常见问题解答的帖子:
https://www.charlesproxy.com/documentation/faqs/
但我不能将 Genymotion 使用的 10.0.3.2 更改为 http://localhost.charlesproxy.com/相反,所以我认为这不会解决我的问题。
最佳答案
所以我现在正在使用 Genymotion 模拟器和 Charles,实际上我设法让 Charles 记录本地主机流量。
类似于我通过 Postman 查询的方式:
http://localhost.charlesproxy.com:8443/ + my api endpoint
我只是将所有 api 端点的主机部分更改为:http://localhost.charlesproxy.com:8443/
并且它起作用了。
关于android - Genymotion 的 Charles Proxy 停止 10.0.3.2 localhost 流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36894298/