Как получить доступ к заголовкам ответов при использовании RxJava2 и Retrofit2?

Помещение

Я работаю над простым приложением, в котором я хочу перечислить пользовательские репозитории GitHub в RecyclerView. Я использую это в качестве конечной точки при создании этого.

Проблема

Проблема, с которой я столкнулся, заключается в том, что GitHub API возвращает только 30 репозиториев за один раз. Чтобы получить больше, я могу добавить per_page=100 (максимум 100) к строке запроса; Но что мы делаем с пользователями, у которых более 100 репозиториев?

Решение API docs заключается в следующем: получить URL-адрес next; из заголовка ответа «Ссылка», чтобы сделать второй вызов API.

Как это сделать? Спасибо!


person Ratik    schedule 23.09.2017    source источник


Ответы (1)


Класс Response позволит вам получить доступ к заголовкам. Клиент GitHub будет иметь такой метод, как:

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

Внутри onNext() вы должны сделать что-то вроде:

@Override
public void onNext(Response<T> response) {
    String next = response.headers().get("next");
}
person esoxjem    schedule 24.09.2017
comment
Observable‹Response‹T›› говорит мне, что Type 'okhttp3.Response' does not have type parameters. Итак, я попробовал вызов с помощью Observable‹Response›, и это привело к ошибке 'okhttp3.Response' is not a valid response body type. Did you mean ResponseBody?. Мысли? - person Ratik; 24.09.2017
comment
Вам нужен класс ответа Retrofit< /а>. Не окхип. - person esoxjem; 24.09.2017