如何监控我的应用程序在 android 中发出的 HTTP(获取、post 等)请求

How to monitor HTTP (get, post etc) requests that my app is making in android

在我自己的应用程序中,我使用各种第 3 方 SDK 以某种形式进行网络调用(HTTP 请求)。在不编辑此代码的情况下,我可以在应用程序中单独编写代码来拦截我的应用程序发出的所有 GET 和 POST 请求吗?

我想在我的应用程序中记录这些 HTTP 调用

我知道使用 Fiddler and Charles proxy tools 但那是在应用程序之外,但这不起作用,因为我无法在我的应用程序中记录这些 HTTP 调用。

有办法吗?

编辑:我在我的代码中使用 Google Analytics SDK 和 Facebook SDK。我想监控这些 SDK 从我的应用程序发出的所有网络调用

Charles代理是个好方法。

其他包括如果应用程序使用单例网络 class(理想情况下应该如此),为 get 创建一个函数,为 post 创建一个函数。从您的 classes 调用这些函数并使用 log.d 在控制台上输出数据。您可以跟踪请求响应或花费的时间。

如果您对设备进行 root 操作或 运行 通过调试 (adb),那么这可能会有所帮助: http://code.tutsplus.com/tutorials/analyzing-android-network-traffic--mobile-10663

否则我认为不可能做你想做的事。但是您可以监控一般网络内容,例如:

有关所有流量统计信息,请参阅:
https://developer.android.com/reference/android/net/TrafficStats.html(只需传入您的应用用户 ID)

用于监控网络状态:
https://developer.android.com/reference/android/net/ConnectivityManager.html

在非 root phone 上,您可以使用 android OS 代理和重定向流量。但是有些应用程序不尊重它。建立直接联系。可以做一些调整。在 VPN 模式下使用 Drony 将所有流量重定向到 SandroProxy。这是如何使用 SandroProxy SandroProxy with Chrome devtools 捕获流量的视频 SandroProxy 也可以捕获 pcapfiles。还可以在 pcap 流上制作 ssl mitm。来自 SandroProxy 支持

如果您特别希望您的应用能够记录 HTTP 调用。 Android Snooper 库可以是您正在寻找的解决方案。

你考虑过 Stetho 吗?

http://facebook.github.io/stetho/

您可以监控和修改所有传入和传出请求等。

https://github.com/jgilfelt/chuck/

它增加了一个新的应用程序,每次发出网络请求时都会发送通知,您可以看到请求的详细信息。

https://github.com/facebook/stetho

它允许您使用 chrome 开发工具来监控从 android 应用创建的请求。 (以及其他很酷的功能)

试试 HTTP Toolkit - 这是我一直在构建的 open-source 工具,正是为了做到这一点。它可以自动拦截来自 Android 设备的流量,无需手动设置,然后允许您检查和重写来自您计算机的所有 HTTP 流量,如下所示:

要拦截来自您的应用程序的 HTTPS 流量,您只需要 a) 在您的应用程序的网络安全配置中信任 'user' 证书(参见 )或 b) 使用模拟器或获得 root 权限的设备(在这种情况下,HTTP 工具包可以注入 'system' 证书,您的应用程序将自动信任该证书)。

您可以将此作为更好的选择。请记住向下滚动应用程序并检查网络拦截是否打开。 Link 在这里 https://appetize.io/upload