我正在开发一款使用第三方jar的Android应用。我想监视并可能修改该库发出的HTTP请求。在iOS下,我可以通过注册一个自定义NSURLProtocol
类来执行此操作,该类可以检查和操作应用程序进程中发生的任何网络请求。
Android有什么相似之处吗?我承认,我是Android开发的新手,但一直无法找到解决这个问题的工作方案。
我没有这个jar的来源,我不能依赖反编译。
我探讨了几件事:
org.apache.http.impl.client.DefaultHTTPClient
类。(这是用于我之后的请求的基础网络类。)似乎这不起作用,因为Android已缓存了这个类的系统版本并且总是加载而不是我的,即使它在加载顺序中设置得更高。我很好地查看了Apache HTTP库,虽然它有各种各样的东西,比如HttpRequestInterceptor
,HttpResponseInterceptor
类,但这对我没什么好处,因为库实例化了一个DefaultHTTPClient
实例,并将其分配给我无权访问的私有方法中的私有成员。
我的最终目标是监控和更改这些单元测试请求。我不希望发出真实的请求;我想提供模拟回复。
答案 0 :(得分:3)
不幸的是,你很幸运:Android应用程序没有适用于该类型的拦截框架。
我的建议是设置一个拦截请求并提供模拟响应的代理。