2017-01-18 3 views
0

Ich bin ziemlich vertraut mit der Verwendung von Asyn-Tasks zum Abrufen von Daten von API-Endpunkten jetzt. Ich kann leicht eine URL treffen und die JSON-Daten parsen, die zurückkommen.JSON-Daten mit einer API-Route abrufen, die viele Seiten enthält

Allerdings bin ich auf ein Problem gestoßen, in dem diese API eine Menge Seiten hat.

Was ist der beste Weg, um mit einer API umzugehen, die viele Seiten hat und keine Möglichkeit hat, die Ergebnisse pro Seite zu ändern?

Mein bestimmter Endpunkt hat mehr als 40 Seiten mit Daten (12 Ergebnisse pro Seite). Ich habe das Gefühl, eine neue asynchrone Aufgabe für jeden Seitenendpunkt zu starten, ist ein bisschen lächerlich.

Irgendwelche Ideen?

+0

Sie benötigen 40+ API-Aufrufe, um die Daten der mehr als 40 Seiten zu erhalten. Es gibt keine Möglichkeit, den Server dazu zu bringen, mehr Seiten auf einmal zurückzugeben, wenn seine API dies nicht unterstützt. –

+0

Retrofit hätte weniger Code –

+0

Ich dachte .. aber gibt es eine Best Practice zu 300+ API-Anrufe machen? Ich habe ein paar verschiedene Endpunkte, von denen ich Daten abrufen muss, und jeder Endpunkt hat mehr als 40 Seiten. –

Antwort

1

Leider, wie alle vorschlagen, gibt es keinen Weg um die API, wenn es kein Ergebnis pro Seite Argument unterstützt. Sie können eine oder zwei Seiten vorab abrufen und sie in einer einzigen AsyncTask verknüpfen. Auf diese Weise minimieren Sie den Umfang der asynchronen Aufgabe, die aus dem Hauptthread besteht, und haben eine Strategie, wenn Sie mehr Seiten laden müssen.

0

Ich würde Ihnen definitiv empfehlen, verwenden Sie Retrofit HTTP-Client. Ich hatte das gleiche Problem fast 260 Anrufe und Retrofit funktionieren gut für mich. Check it here

Verwandte Themen