von einer Wordpress-Website, mit JSON Rest API, erhalten wir die JSON der gesamten Website. Ich möchte den Json der ersten 10 Beiträge aus allen Kategorien für Android laden. Ich verwende Volley, um das JSON-Array zu laden, und es ist nicht möglich, die gesamte Array-Antwort zu laden, da sie riesig ist. Ich möchte die ersten 10 Posts und wenn ich mehr lade, möchte ich den JSON vom 11. Post zum 20. Post. kann ich das tun?JSON von 10 posts von wp json rest api v1 Für Android App
zur Zeit meine url ist wie http://www.example.com/wp-json/posts
ich in folgenden Code am anfordernden
JsonArrayRequest request = new JsonArrayRequest(Request.Method.GET,
baseUrl,
(String) null,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d("json",response.toString());
listRecentPost = parseJsonResponse(response);
Log.d("LSN", listRecentPost.isEmpty() + "");
// If any data is avialable
if (!listRecentPost.isEmpty()) {
postAdapter.setRecentPost(listRecentPost);
postAdapter.notifyDataSetChanged();
/*
suppose data connection is off so error image and text will show
* but when my connection will be okk then i need to disable this image and error text
* */
errorImage.setVisibility(View.GONE);
errorMsg.setVisibility(View.GONE);
}
else {
errorMsg.setVisibility(View.VISIBLE);
errorMsg.setText("No Post Available");
}
//disable loading icon
swipeRefreshLayout.setRefreshing(false);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("LSN", error.toString() + "VolleyError");
// enable error iamge and text
errorImage.setVisibility(View.VISIBLE);
errorMsg.setVisibility(View.VISIBLE);
if (error instanceof TimeoutError || error instanceof NoConnectionError) {
errorMsg.setText(error.toString());
} else if (error instanceof AuthFailureError) {
errorMsg.setText(error.toString());
} else if (error instanceof ServerError) {
errorMsg.setText(error.toString());
} else if (error instanceof NetworkError) {
errorMsg.setText(error.toString());
} else if (error instanceof ParseError) {
errorMsg.setText(error.toString());
}
//again try to load data after 30 seconds
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
swipeRefreshLayout.setRefreshing(false);
swapeRefresh();
}
}, 30000);
}
});
Zur Zeit habe ich eine Ausnahme wie com.android.volley.TimeoutError
und was der Parameter requestBody tut in JsonArrayRequest? Warum verwenden wir hier null?
mit Codes zu erklären wird für mich besser sein.
Vielen Dank im Voraus.
Vielen Dank @hannes, jetzt werden die Beiträge in der Liste geladen. Manchmal wird TimeOutError ausgelöst und dann wird es geladen. Es wird mir eine Freude sein, wenn Sie sagen, warum wir ein Null-Objekt senden, um JSON-Objekt in 3. Parameter anzufordern. Und in der detaillierten Post außer dem Infografik-Bildbeitrag werden andere Bilder geladen. Kannst du mir bitte helfen, Bilder zu optimieren, um schneller zu laden. Ich habe eine Picasso-Bibliothek benutzt. –
Können Sie mir bitte helfen [hier] (http://stackoverflow.com/questions/38312625/loading-large-images-in-textview-using-html-imagegetter-and-picasso-library-in-a) –
Sicher , aber ich kenne Picasso nicht für ImageLoading, für mich wäre die Lösung Volley Image Loader. Es kann mehrere Bilder in Stapeln und so weiter laden. Dazu gibt es sehr schöne Dokumentationen. [Picasso vs Volley] (https://www.bignerdranch.com/blog/solving-the-android-image-loading-problem-volley-vs-picasso/) Ich würde weitere Informationen benötigen ... – Hannes