如何记录 Android 和 iOS 等移动设备的 HTTP 和 HTTPS 流量?

How to log HTTP and HTTPS traffic for mobile devices like Android and iOS?

我有以下设置:

移动客户端(Android 和 iOS)使用带 json 正文的 HTTPS 休息请求直接与 3 个服务器通信。

我想在中间托管一个服务器,并在非 PROD 环境之一中使用应用程序时发送所有请求,并记录每个请求和响应。开发人员或 QA 实时打开网页并实时查看每个 activity 应用程序正在做的事情。

此外:应用一些过滤器,例如仅请求特定地址,或除特定地址以外的所有内容。应用延迟并更改 request/response 正文或状态代码 - 就像在 Fiddler 中一样。

为了今天实现这一点,我必须托管 Fiddler 或 Charles 代理并将计算机设置为每个设备的代理服务器。

你能建议我使用什么?

您可以设置一个 wifi 代理服务器并要求所有设备通过该 wifi 代理服务器连接...现在您可以监控该代理服务器上的流量...

在 Linux 服务器上,您可以使用 squid 设置 wifi 代理 -http://computernetworkingnotes.com/network-administrations/squid-server.html

要在 android 设备上设置 wifi 代理,请转至 Settings/Wi-Fi-> "Show advanced options"-> "Proxy settings" 并选择 "manual"

您可以在服务器上托管 Fiddler 代理。同样在 Fiddler 设置中,如果您想查看 HTTPS 流量,请不要忘记标记 'Decrypt HTTPS' 设置。

Fiddler 会给你一个证书,你需要在移动设备上安装该证书,以便 Fiddler 可以解密 HTTPS 连接。

在 Wifi 设置中设置代理。

确保您的应用使用在 Wifi 设置中设置的代理设置。我见过一些忽略代理设置的应用程序。