【发布时间】:2016-08-22 00:22:08
【问题描述】:
我阅读了有关该主题的所有主题,并且使用 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 上运行的 localhost 开发 Spring 服务器
- 我的 genymotion 模拟器上安装了一个 android 应用程序。 genymotion 模拟器通过 ip 10.0.3.2 (How to access localhost from a Genymotion android emulator?) 与我的本地开发服务器通信
我不确定说明是否过时,但我遇到的问题是来自我的 genymotion 模拟器的流量记录在 Charles Proxy 中,但它只是没有到达我的本地主机服务器。我没有在我的服务器和我的应用程序之间使用任何 SSL 加密。
这是我在 genymotion wifi 屏幕中的设置:
这就是我的 Charles Proxy 的样子——你可以看到它正在“连接到远程主机”。它永远连接,然后最终在我的 android 应用程序端给我一个 503 错误,没有任何返回:
如果我关闭 Charles Proxy,应用程序会毫无问题地连接到我的本地主机服务器,并且所有调用都成功返回。我认为这与查尔斯阻止我的应用程序与我的本地主机服务器通信有关。
在 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 的关于 Localhost 流量的常见问题解答中没有出现在 Charles 中的这篇文章:
https://www.charlesproxy.com/documentation/faqs/
但我不能将 Genymotion 使用的 10.0.3.2 更改为 http://localhost.charlesproxy.com/,所以我认为这不会解决我的问题。
【问题讨论】:
标签: android proxy localhost genymotion charles-proxy