使用 RxJava2 和 Retrofit2 时如何访问响应头?
Posted
技术标签:
【中文标题】使用 RxJava2 和 Retrofit2 时如何访问响应头?【英文标题】:How do I access response headers while using RxJava2 and Retrofit2? 【发布时间】:2018-03-05 05:28:29 【问题描述】:前提
我正在开发一个简单的应用程序,我想在 RecyclerView 中列出用户的 GitHub 存储库。我在构建它时使用this 作为我的端点。
问题
我面临的问题是 GitHub API 一次只返回 30 个 repos。要获得更多信息,我可以将per_page=100
(最大值为 100)附加到我的查询字符串中; 但是,对于拥有超过 100 个 repo 的用户,我们该怎么办?
API docs 提供的解决方案是从“Link”响应标头中获取 next;
url 以进行第二次 API 调用。
如何解决这个问题?谢谢!
【问题讨论】:
【参考方案1】:Response
类将允许您访问标题。 GitHub 客户端会有一个类似的方法:
@GET("/search/code")
Observable<Response<T>> getUser(...)
在onNext()
中,您可以执行以下操作:
@Override
public void onNext(Response<T> response)
String next = response.headers().get("next");
【讨论】:
ObservableType 'okhttp3.Response' does not have type parameters.
因此,我尝试使用 Observable'okhttp3.Response' is not a valid response body type. Did you mean ResponseBody?
错误。想法?以上是关于使用 RxJava2 和 Retrofit2 时如何访问响应头?的主要内容,如果未能解决你的问题,请参考以下文章
Android RxJava2+Retrofit2单文件下载监听进度封装
RxJava2+Retrofit2+RxLifecycle2使用MVP模式构建项目
使用Retrofit2+RxJava2+ProtoBuf实现网络请求
retrofit2+MVP+rxjava2+rxlifecycle2 为啥无法解决内存泄露