PacketZoom如何工作?

时间:2016-06-03 12:28:08

标签: android http networking java-native-interface httpurlconnection

我想通过添加某种拦截器来跟踪来自我的Android应用程序的所有HTTP请求(包括应用程序中使用的库所做的请求)。但我不知道该怎么办呢。这是一个SDK,声称它对网络请求进行了优化,因此您只需将其添加到项目中,它就会自动捕获所有http请求并对其进行优化。 https://packetzoom.com/index.html?utm_expid=79277288-12.gxkHaG0PSAG0KVsLa3JdzA.0&utm_referrer=https%3A%2F%2Fpacketzoom.com%2F

它是如何工作的?如果他们实现了优化功能,那么这意味着所有HTTP请求都是可以跟踪的。我猜他们已经通过JNI完成了它,但我找不到任何可行的解决方案。

1 个答案:

答案 0 :(得分:1)

Packetzoom工程师在这里。 拦截来自应用程序的所有请求的方法很少:

  1. 您实现可以作为单独服务运行的本地http代理服务器 并使用ProxySelector.setDefault API将所有请求重定向到您的代理。这通常适用于流行的库,如 OkHttp HttpUrlConnection 。 但是,您将无法看到https流量,因为它已加密,您的代理必须支持HTTP CONNECT方法为https提供隧道。

  2. 第二种方法是使用URLStreamHandlerFactory API

  3. 注册自定义HTTP / HTTPS协议处理程序。此方法仅限于使用HttpUrlConnection API,但您可以访问原始HTTPS请求。

    顺便说一句,PacketZoom现在提供免费的HttpOptimizer服务,该服务监控所有请求的性能,并根据网络类型,位置,运营商动态为HTTP客户端(如超时,并发,缓存)应用适当的配置参数。您还可以看到来自第三方SDK的所有流量以及它们消耗的数据量。