当前位置: 首页 > 知识库问答 >
问题:

android rxjava2/retrofit2使用分页令牌链接调用

阙俊友
2023-03-14

我使用REST API查询Person对象列表。最大限制是100人响应。我需要把所有的人都叫来,总数不详。第一个响应中有一个名为“next”的字段,包含下一页的url。我需要使用rxjava/rxandroid和referfit链接这些调用,直到最后一个响应有一个空的“next”字段。由于“Next”字段包含分页url,所有后续调用都将具有与第一个不同的url。做这件事最方便的方法是什么?

共有1个答案

呼延衡
2023-03-14

与此类似的方法也会起作用(有点泛化):

public Observable<Response> paginate(String initialUrl){
    AtomicReference<String> url = new AtomicReference<>(initialUrl)
    return Observable.defer(() -> api.loadUsers(url.get())
                      .doOnNext(response -> url.set(response.next))
                      .repeatWhen(r -> r.takeWhile(!url.get().isEmpty()));
}
 类似资料:
  • 我的程序需要索引与Lucene(4.10)非结构化文档,内容可以是任何。因此,我的自定义分析器使用ClassicTokenizer首先标记文档。 但是,从来不处理堆栈。实际上,我不知道incrementToken方法是如何工作的,尽管我读了这个SO问题,也不知道它何时从tokenStream中处理给定的token。 最后,我要实现的目标是:对于xyz@gmail.com作为输入文本,我希望生成以下

  • 问题内容: 如何使用链接调用JavaScript代码? 问题答案: 要么 编辑: 上面的回答确实不是一个好的解决方案,自从我最初发布以来,已经学到了很多有关JS的知识.

  • 问题内容: 我需要发出一系列N ajax请求而不锁定浏览器,并且想要使用jquery延迟对象来完成此操作。 这是一个具有三个请求的简化示例,但是我的程序可能需要排队100个以上(请注意,这不是确切的用例,实际代码的确需要在执行下一个步骤之前确保步骤(N-1)的成功步): 这是写入控制台的内容(所有请求都是并行进行的,响应时间与预期的每个国家/地区的数据大小成正比: 我怎样才能让延期的对象为我排队呢

  • flasky学习过程中,有关分页的那部分使用url_for生成url的问题 假设查看的用户是haha 1.在用户头像创建的url 生成的url是 http://xxx/user/haha 2.在下边分页创建导航栏的url 定义的宏 模板调用宏 为什么生成的url是 http://xxx/followers_by/haha?page=1 而不是是http://xxx/followers_by/?pa

  • Hangfire在发起一个取消任务请求或者终止任务时,为任务提供了取消令牌的支持,在前一种情况下,将自动放回队列的对头,允许Hangfire重新处理任务。 取消令牌通过 IJobCancellationToken 的接口暴露出来。当发起取消任务请求时,它通过 ThrowIfCancellationRequested 方法来抛出 OperationCanceledException : public

  • 我正在尝试使用,我想将添加到我的像这样: 但下面的不起作用: 我的服务器是asp。net webApi。请帮忙,我该怎么办?