我正在使用REST API查詢Person對象列表。最大限度是100人的迴應。我需要取回所有人,總金額未知。 第一個響應中有一個名爲「next」的字段,其中包含下一頁的url。我需要使用RxJava/RxAndroid和Retrofit鏈接這些調用,直到最後一個響應有一個空的「下一個」字段。 由於「下一個」字段包含分頁網址,因此所有後續的調用將具有與第一個不同的網址。 什麼是最簡單的方法來做到這一點?android rxjava2/retrofit2使用分頁令牌鏈接調用
1
A
回答
1
類似的東西,以這樣的工作(有點廣義):
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()));
}
0
你可以做這樣的事情。
Observable.just("input as one item if any").
.map(new Function<String, List<Person>>(){
@Override
public List<Person> apply(String inPut) throws Exception {
// using inPut, get url, service name, and other input
// params
String nextUrl = "firsturl";
List<Person> persons = new ArrayList<Persons>();
while(nextUrl != null){
//call service using plain retrofit passing nextUrl and get
//person objects
//add 100 person objects from each call
persons.add();
//get next Url
if(nextUrlFromResponse != null){
nextUrl = "next url from previous call";
}else{
nextUrl = null;
}
}
return persons;
}
}).subscribeOn(Schedulers.io()).observeOn(Androidmainthread);
相關問題
- 1. 爲什麼使用分頁令牌?
- 2. Symfony2的鏈接令牌
- 3. 如何使用分頁鏈接
- 4. 使用jsoup獲取和重定向鏈接的鏈接與令牌=到底
- 5. 使用從STS分配的令牌來調用WCF服務
- 6. 使用令牌
- 7. 在Facebook Graph API中使用應用令牌代替用戶/頁面令牌
- 8. 頁面令牌使用YouTube API a3 v3
- 9. 將Google令牌與FCM鏈接註冊令牌
- 10. 調用鏈接Android應用程式
- 11. 如何從分頁指令angularjs隱藏直接頁面鏈接?
- 12. 調整分頁鏈接的位置
- 13. nodejs身份驗證令牌鏈接到安全頁面
- 14. Marketo令牌鏈接忽略樣式
- 15. 使用PHP中的CURL命令調用鏈接/ URL
- 16. 將PHP與Android Studio鏈接以獲取Firebase令牌
- 17. 分享鏈接使用whatsapp
- 18. 使用應用程序訪問令牌發佈到Facebook應用程序頁面的鏈接
- 19. 鏈接到另一頁後調用Javascript
- 20. 對頁面加載調用JavaScript鏈接
- 21. 分手PHP分頁鏈接
- 22. 如何完全禁用分頁鏈接
- 23. 我應該如何更新AJAX調用中的分頁鏈接?
- 24. 點擊bootstrap分頁鏈接調用jquery函數
- 25. ADAL JS不附接用戶令牌而調用的WebAPI
- 26. API分頁,如何實現頁面令牌分頁方法?
- 27. C#任務 - 鏈接的取消令牌不起作用
- 28. 用令牌點擊鏈接後自動登錄(jrean/laravel-user-verification)
- 29. Swift 3.0令牌過期如何自動調用令牌?
- 30. 如何使用html鏈接的參數調用asp頁面?
您是否想要進行所有調用,然後返回(發出)一大羣人或加載人員作爲對某些操作的反應? – skywall
一旦所有調用完成,我寧願有一個最後發出的人的大名單 –
您可能會發現這個有用https://stackoverflow.com/questions/28047272/handle-paging-with-rxjava – skywall