【发布时间】:2016-12-19 17:25:32
【问题描述】:
我想为 Android 模拟器代理网络流量。
我似乎无法让它工作。
我的模拟器是用这个启动的:
emulator @Nexus_5X_API_23 -http-proxy 10.0.1.17:8888
IP 和端口指向 Charles 在帮助菜单中报告的内容。
已安装 SSL 证书。我可以打开模拟器浏览器,Charles 会向我显示所有流量。浏览器照常更新。
到目前为止,一切似乎都很好。
现在我尝试运行我的应用程序。我的第一个网络电话通过 Charles 成功发出。响应返回,Charles 显示它。但是响应没有成功传递给应用程序。
我在错误回调中设置了一个断点,我可以看到由java.io.IOException: unexpected end of stream on Connection 引起的com.android.volley.NoConnectionError。
为什么 Charles 不将结果正确地传回应用程序?
我需要执行the end of the configuration page on Charles 中定义的操作吗?
HttpHost httpproxy = new HttpHost("192.168.0.101", 8888, "http");
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,httpproxy);
这似乎不正确 - 我错过了什么?
【问题讨论】:
-
您在谈论 SSL 证书...您的代理 SSL 是一个吗?或者您正在尝试连接到受 SSL 保护的网站?
-
如果你想监控https流量,我建议你使用Fiddler,这方面更方便。
-
你用什么HttpStack?在启动模拟器时尝试添加 -verbose-proxy 并将输出添加到问题中
标签: android proxy android-volley charles-proxy