我想在我的应用程序中记录这些HTTP调用。
我知道可以使用Fiddler和Charles代理工具,但这是在应用程序外部,这样做无法记录我的应用程序中的这些HTTP调用。
有没有办法实现它?
编辑:我在我的代码中使用了Google Analytics SDK和Facebook SDK。我想监视这些SDK从我的应用程序中发出的所有网络调用。
在未root的手机上,您可以使用Android操作系统代理来重定向流量。但是,有些应用程序不遵守它,而是直接建立连接。可以进行一些调整。使用Drony并切换到VPN模式将所有流量重定向到SandroProxy。这里有一个视频,介绍如何使用SandroProxy捕获流量:SandroProxy with Chrome devtools。SandroProxy还可以捕获pcap文件,并对pcap流进行SSL中间人攻击。来源于SandroProxy支持团队。
Charles代理是一种很好的方式。
其他方式包括如果应用程序使用单例网络类(最好这样做),为获取和提交创建一个函数。从您的类中调用这些函数并使用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
你可以使用这个作为更好的选择。记得向下滚动应用程序并检查网络拦截是否开启。 链接在这里 https://appetize.io/upload