我正在尝试升级到 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 中做到这一点?
原文由 Stackoverflow 发布,翻译遵循 CC BY-SA 4.0 许可协议
更新:
再次阅读问题后:
如果您想访问原始响应,您需要将 API 接口定义为:
代替:
您可以使用以下方法获取 Url:
这里:
response
是Retrofit的回应raw
是来自OkHttp的响应request
是来自 OkHttp 的请求,其中包含Url
作为HttpUrl
。