【问题标题】:Capturing Android applicataion traffic using FIddler使用 Fiddler 捕获 Android 应用程序流量
【发布时间】:2016-07-12 12:57:25
【问题描述】:

到目前为止,我成功地捕获了本地 Java 程序和 Android 浏览器的流量。但是,我未能捕获我的 Android 应用程序的流量(使用 HttpsUrlConnection)。

虽然按照this 指南中的步骤在设备上配置 WiFi 网络,但在下载证书的步骤中,我遇到了一个奇怪的行为,因为 Chrome 引发了一个错误,而 Firefox 在没有打开预期对话框的情况下安装了它:

但是当我再次尝试下载它时,它说证书已经安装。

无论如何,当运行我的应用程序时(在真实设备上,Karbonn S203 API 19),Fiddler 中没有记录任何请求或隧道。我尝试了很多,包括检查 this 线程无济于事。在其他文章中,我读到仅显示隧道,但我也没有。我错过了什么吗?

谢谢。

编辑:如果从 PC 复制后,我设法从Settings -> Security -> Install Certificate“正确”安装(使用上述屏幕)。我仍然看不到 Fiddler 中的请求。

【问题讨论】:

    标签: java android httpurlconnection fiddler httpsurlconnection


    【解决方案1】:

    显然问题是由于使用了一些不常见的设备(嗯,至少在欧洲/北美不常见)。他们可能在 AOSP 版本中进行了一些配置更改。当使用 Nexus 5 以相同的方式工作时,我设法在“WiFi”下添加了证书,然后成功捕获了请求。

    【讨论】:

    • 你拯救了我的一天! Honor 5C 7.0 - 不行,Nexus 5 6.0.1 - 好
    【解决方案2】:

    您的应用似乎没有使用 Fiddler 作为代理。当您调用 openConnection 时,您是否将 Proxy 对象传递给它?如果是,如何初始化这个代理对象?

    您可能想先尝试发送一些 HTTP 流量,以确保您使用的是正确的代理设置,然后再尝试使用 HTTPS。

    【讨论】:

    • 我读到它取决于系统属性https.proxyHost & https.proxyPort。我会尽力落实您的建议,谢谢。
    • 对了,如果我需要创建代理实例,为什么我在PC上监控Java应用程序时不需要呢?我必须只使用上面的行(+ http 的相同行)才能使其工作。