如何使用rxjava获取retrofit 2.0中的请求url?

2024-03-10

我正在尝试升级到 Retrofit 2.0 并在我的 android 项目中添加 RxJava 。我正在进行 api 调用,并希望检索 url 及其以及 sqlite 中的响应数据作为缓存

Observable<MyResponseObject> apiCall(@Body body);

在 RxJava 调用中:

myRetrofitObject.apiCall(body).subscribe(new Subscriber<MyResponseObject>() {
    @Override
    public void onCompleted() {

    }

    @Override
    public void onError(Throwable e) {

    }

    @Override
    public void onNext(MyResponseObject myResponseObject) {

    }
});

在Retrofit 1.9中,我们可以在成功回调中获取url:

        @Override
        public void success(MyResponseObject object, Response response) {
            String url=response.getUrl();
            //save object data and url to sqlite
        }

如何使用 RxJava 在 Retrofit 2.0 中做到这一点?


Update:

再次阅读问题后:

如果您想访问原始响应,您需要将 API 接口定义为:

Observable<Response<MyResponseObject>> apiCall(@Body body);

代替:

Observable<MyResponseObject> apiCall(@Body body);

您可以使用以下方式获取 URL:

response.raw().request().url()

here:
response是来自 Retrofit 的回应
raw是 OkHttp 的响应
request是来自 OkHttp 的请求,其中包含Url as HttpUrl.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用rxjava获取retrofit 2.0中的请求url? 的相关文章

随机推荐

  • mysql从两个表和不同结构中选择数据

    你好 我正在用 php mysql 建立一种议程 网站 该议程包含按日期排序的公共事件和用户个人笔记 我需要加载数据库中事件表中的所有事件以及注释表中的注释 但这两个表具有完全不同的结构 并且它们只有一个相同的字段 DATETIME 那么我
  • 如何更改golang中的指针切片

    我正在尝试更好地理解 go 我为自己创建了一个小练习 将指针切片传递给函数并修改它 这就是我想出的 package main import fmt unsafe func main var data byte fillData data f
  • 从哪里开始使用 C# 和 Dreamweaver 中的 ASP.net?

    我希望开始使用 C 开发个人网站 我是一名 Web 开发人员 以前使用过 VBScript 现在在工作中使用 Coldfusion 我使用 Dreamweaver 进行这些语言的开发 我读过很多人建议您应该使用 MS IDE 在 net 中
  • 如何在 Angular 中包含材质图标库?

    我参考这个链接问题 2662 https github com angular angular cli issues 2662为此 我添加CSSangular json and import library instyle css它给出了如
  • 如何在`mock.Mock().call_args`中获取`self`实例?

    在修补虚拟类时 我观察到不一致的行为 class A def f self args kwargs pass 如果我手动修补该功能 call args list def mock fn args kwargs call args list
  • 是否应该在 using 语句中使用 WebClient?

    如果 HttpClient 不应该用于using声明 请参阅以下链接 https aspnetmonsters com 2016 08 2016 08 27 httpclientwrong https aspnetmonsters com
  • Google 云视觉 Web 检测 API 仅返回 10 个响应

    我正在使用 Google 云视觉 Web 检测 API 来检测图像的使用位置 但即使是 Google 的徽标 我也总是最多收到 10 个回复 是 API 的限制还是我遗漏了一些东西 因为文档中没有提到任何内容 Cloud Vision AP
  • ffprobe 显示 h264 流的比特率为 0.0 或 N/A

    我有一个 11 分钟的 mkv 文件 带有 h264 视频流 占用 184MB 空间 我想减小这个文件的大小 我想我可以降低比特率 但 ffprobe 不输出任何内容 事实上 它说文件的长度是根据比特率计算的 因此可能不准确 但摘要或 FO
  • 禁止“尝试新的跨平台 PowerShell https://aka.ms/pscore6”

    我不介意一点微软的营销 但是当我只想要一个干净的 PowerShell 提示符时 这很烦人 有没有人找到一种方法来抑制Try the new cross platform PowerShell https aka ms pscore6打开
  • jQuery masonry 如何调用layoutComplete

    我有以下功能 namespace utils pageReorder feed function console log complete do some stuff here no reorder has completed pageRe
  • 使用 CSS 旋转元素后使用高度/宽度 100%

    我有一个想要旋转的元素 视频 然后使用 100 宽度和高度 在应用旋转之前 视频占据 100 的宽度和高度 旋转后 尺寸似乎与旋转之前保持相同 我想重新应用宽度和高度 100 以使视频适应新状态 目标是尝试以横向方式呈现视频 即使 div
  • 如何绘制 Wolfram Alpha 网格? [MATLAB]

    我想绘制这个网格的任何函数 这是 f z gt 1 z 的特殊情况 这是您可以在 Wolfram alpha 上找到的典型图表 尽管如此 我不知道如何继续 这个想法是看看应用 f 后 1 平方的复杂网格的线被发送到哪里 一件很棒的事情是在网
  • bash 脚本中查找函数的结果出现问题

    我的 bash 脚本有问题 我的 for 函数使用 find 函数的结果 长话短说 在 SSH 中 find 函数返回 2 个结果 而在 bash 脚本中返回单个结果 我尝试了以下两个代码 for f in find path name p
  • 在 URL 查询字符串中使用方括号的数组语法是否有效?

    在 URL 查询字符串中使用多维数组语法实际上安全 有效吗 http example com abc 123 abc 456 它似乎适用于每个浏览器 我一直认为它可以使用 但根据本文中的评论 事实并非如此 http www 456berea
  • GetWindowRect 坐标不与屏幕相关

    我正在使用 Visual Studio 2008 C 工作 我有一个 MFC 对话框 里面有一个控件 我正在尝试在控件中放置另一个对话框 第二个对话框上的 SetWindowPos 显然使用屏幕坐标 因此我需要获取控件或父对话框的屏幕坐标
  • 被指令包装后,我如何访问它的范围?

    如何在指令主体中访问指令的隔离范围 我的 DOM 看起来像这样 div div
  • UICollectionView 中的单元格间距

    如何设置某个部分的单元格间距UICollectionView 我知道有一个房产minimumInteritemSpacing我已经将其设置为 5 0 但间距并未出现 5 0 我已经实现了流出委托方法 CGFloat collectionVi
  • 如何在 PHP 中将 UTF-16 十六进制字符串转换为 UTF-8?

    我有来自 strace 的以下输出 我想使用 PHP 将其转换为 UTF 8 R 00f6dhakev 00e4gen 4 R 00e4ntm 00e4starv 00e4gen 24 K 00d8BENHAVN 我认为上面的字符串是 UT
  • 尝试使用列表迭代器删除对象

    我正在尝试使用列表迭代器从列表中删除对象 我已经浏览了网站上的其他解决方案 但没有一个解决方案可以缓解错误 线程 main java util ConcurrentModificationException 中的异常 这是我未执行的代码 v
  • 如何使用rxjava获取retrofit 2.0中的请求url?

    我正在尝试升级到 Retrofit 2 0 并在我的 android 项目中添加 RxJava 我正在进行 api 调用 并希望检索 url 及其以及 sqlite 中的响应数据作为缓存 Observable