如何在使用 RxJava2 和 Retrofit2 时访问响应 headers?

How do I access response headers while using RxJava2 and Retrofit2?

前提

我正在开发一个简单的应用程序,我想在其中列出 RecyclerView 中用户的 GitHub 存储库。我在构建它时使用 this 作为我的端点。

问题

我面临的问题是 GitHub API returns 一次只有 30 个回购。要获得更多,我可以将 per_page=100 (100 是最大值)附加到我的查询字符串; 但是,我们对超过100个回购的用户怎么办?

API docs 提供的解决方案是从 "Link" 响应 header 中获取 next; url 以进行第二个API 打电话。

如何解决这个问题?谢谢!

Response class 将让您访问 headers。 GitHub 客户端会有这样的方法:

@GET("/search/code")
Observable<Response<T>> getUser(...)

onNext() 中,你会做这样的事情:

@Override
public void onNext(Response<T> response) {
    String next = response.headers().get("next");
}