【问题标题】:Android : Intercept network calls (HTTP, HTTPS etc..) originated from 3rd party libraries inside my AppAndroid:拦截来自我的应用程序内的第三方库的网络调用(HTTP、HTTPS 等)
【发布时间】:2016-12-18 12:16:29
【问题描述】:

我看到了一些与此相关的 SO 帖子(有些是新的,有些是旧的),但找不到相关答案。是否可以拦截来自 3rd 方库的 HTTP 调用并在应用程序内阻止它们?基本上我想在我的应用程序中确定通过它发出的 HTTP 调用。由于我使用的是第三方库,我想为所有 HTTP 调用分析它,然后将第三方库进行的任何不必要的调用列入黑名单。我知道第 3 方库正在进行 HTTP 调用来处理其功能。我想阻止它从我的应用程序发送任何数据。我知道我可以使用像 Charles 这样的 HTTP 调试代理应用程序来了解我的应用程序正在进行哪些调用,然后决定是否使用该库。但我想通过仅阻止一些不必要的调用来使用该库。

【问题讨论】:

  • 并非如此。使用 Android 7.0 的网络安全配置,您也许可以一起破解某些东西,将您自己的域列入白名单(使用适当的 SSL 规则),并说其他所有内容都不允许系统证书或明文流量(这可能会破坏库)。即使这不适用于本机代码,WebView,也许还有一些低级 Java 套接字工作。
  • 谢谢!将我指向网络安全配置。

标签: android security http proxy network-programming


【解决方案1】:

创建自定义 URLStreamHandlerFactory 和 URLStreamHandler 并通过调用 URL.setURLStreamHandlerFactory(this) 从应用程序 onCreate() 设置它,这将允许捕获/阻止所有网络流量,甚至是由第三方库产生的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多