我正在尝试创建某种SDK,无论我们使用的是哪个HTTP客户端(本机HttpURLConnection,OkHttp,Retrofit等),我们都会拦截来自我应用的每个请求。并包括来自Firebase Analytics等第三方库的流量。
我需要拦截并检查几个参数,然后决定是允许还是阻止当前请求。
我不想使用任何自定义VPN,因为它有一些副作用,例如显示系统级通知和来自用户设备的所有流量。
是否可以通过设置app level
代理来捕获所有请求?
如果可能,如何用代码实现?
答案 0 :(得分:4)
您可以使用翻新 改造将节省您的开发时间,并且您还可以使代码对开发人员友好。改造已经提供了几乎所有的API来进行服务器调用和接收响应。在内部,他们还使用GSON进行解析。您可以浏览此link,您将获得更多信息。您还可以看到difference和其他库
答案 1 :(得分:2)
您可以尝试使用https://developer.android.com/reference/android/net/VpnService实施自定义VPN。有了它,您应该能够控制允许哪些流量访问互联网,哪些不允许。如您所写,您将创建一个SDK,实现者应该了解VPN在应用程序中的副作用(正在进行的系统通知,每个流量都通过该VPN进行路由等)