【发布时间】:2012-04-13 22:07:16
【问题描述】:
我正在开发一个使用第三方 jar 的 Android 应用。我想监视并可能修改该库发出的 HTTP 请求。在 iOS 下,我可以通过注册一个自定义的 NSURLProtocol 类来做到这一点,该类可以检查和操作应用程序进程中发生的任何网络请求。
Android 有类似的东西吗?我承认,我是 Android 开发新手,但一直无法找到解决此问题的有效解决方案。
我没有这个jar的源码,也不能依赖反编译。
我探索过的几件事:
- Android ContentProvider。不起作用,因为该解决方案必须支持“http://”请求,而不是“content://”请求。
-
创建一个自定义的
org.apache.http.impl.client.DefaultHTTPClient类。(这是用于我所追求的请求的底层网络类。)似乎这不起作用,因为 Android 已经缓存了这个类的系统版本并且总是加载它而不是我的,即使它在加载顺序中设置得更高。
我已经很好地查看了 Apache HTTP 库,虽然它有各种各样的东西,例如 HttpRequestInterceptor、HttpResponseInterceptor 类,但这对我没有多大好处,因为该库实例化了 DefaultHTTPClient实例并将其分配给我无权访问的私有方法中的私有成员。
我的最终目标是监控和更改这些请求以进行单元测试。我不希望发出真正的请求;我想提供一个模拟响应。
【问题讨论】:
标签: android apache-httpcomponents