Genymotion 的 Charles Proxy 停止 10.0.3.2 localhost 流量

Charles Proxy for Genymotion stops 10.0.3.2 localhost traffic

我阅读了所有关于这个主题的帖子,使用 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

我的设置是:

  1. 我的 Mac OS
  2. 上的本地主机开发 Spring 服务器 运行
  3. 我的 genymotion 模拟器上安装了一个 android 应用程序。 genymotion 模拟器通过 ip 10.0.3.2 (How to access localhost from a Genymotion android emulator?)
  4. 与我的本地开发服务器通信

我不确定说明是否过时,但我遇到的问题是从我的 genymotion 模拟器流出的流量记录在 Charles 代理中,但它只是没有到达我的本地主机服务器。我没有在我的服务器和我的应用程序之间使用任何 SSL 加密。

这是我在 genymotion wifi 屏幕中的设置:

这就是我的 Charles Proxy 的样子 - 你可以看到它是 "Connecting to remote host"。它永远连接,然后最终在我的 android 应用端给我一个 503 错误,没有任何东西被 returned:

如果我关闭 Charles Proxy,该应用程序会毫无问题地连接到我的本地主机服务器,并且所有调用都会 return 成功。我认为这与阻止我的应用程序与我的本地主机服务器通信的 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 这样的网站,它会 return 成功并在 Charles 中记录结果,但我不看购买或准备支付 50 美元购买一个工具来记录我的 android 浏览器流量。我需要它与我的 android 应用程序一起使用,以便我可以调试我的应用程序。我不确定如何解决这个问题,这里有人知道我是否遗漏了什么吗?

编辑:

如果有人想知道,我已经阅读了这个 post 关于 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/ 并且成功了。