gpt4 book ai didi

android - iOS SDK 中 NSURLProtocol 的 Android 等价物是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:58:48 25 4
gpt4 key购买 nike

我正在开发一个使用第三方 jar 的 Android 应用程序。我想监视并可能修改该库发出的 HTTP 请求。在 iOS 下,我可以通过注册自定义 NSURLProtocol 类来实现这一点,该类可以检查和操作应用程序进程中发生的任何网络请求。

Android 有类似的东西吗?我承认,我是 Android 开发的新手,但一直找不到解决这个问题的有效方法。

我没有这个 jar 的源代码,我不能依赖反编译它。

我探索过的几件事:

  • Android ContentProvider。将不起作用,因为解决方案必须支持“http://”请求,而不是“content://”请求。
  • 创建自定义 org.apache.http.impl.client.DefaultHTTPClient 类。(这是用于我之后的请求的底层网络类。)这似乎行不通,因为 Android 已经缓存了此类的系统版本并且总是加载它而不是我的,即使它在加载顺序中设置得更高。

我已经仔细研究了 Apache HTTP 库,虽然它有各种各样的东西,比如 HttpRequestInterceptorHttpResponseInterceptor 类,但这对我没什么用很好,因为库实例化了一个 DefaultHTTPClient 实例,并在我无权访问的私有(private)方法中将其分配给私有(private)成员。

我的最终目标是出于单元测试目的监控和更改这些请求。我不希望发出真正的请求;我想提供模拟响应。

最佳答案

不幸的是,您很不走运:没有适用于 Android 应用程序的那种应用程序范围的拦截框架。

我的建议是设置一个代理来拦截请求并提供您的模拟响应。

关于android - iOS SDK 中 NSURLProtocol 的 Android 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10148926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com