Почему данные JSON не загружаются в Android "Lollipop" как объект JSONObject - PullRequest
0 голосов
/ 08 октября 2019

В настоящее время я работаю над проектом Running, там у меня проблема, проблема в том, что данные JSON не загружаются в нижней версии Android. сейчас я тестирую на двух устройствах, код работает на Android 10, но он вызывает метод onFailure в Android Lollipop.

Я проверил эту документацию https://loopj.com/android-async-http/ здесь они сказалиAsyncHttpClient совместим с Android API 23 и выше. Теперь

Как я могу это решить? Я проверил версию Android и написать другой код?

AsyncHttpClient client = new AsyncHttpClient();

        client.get(Constant_Api.home, null, new AsyncHttpResponseHandler() {

            @Override
            public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {

                Log.d("Response", new String(responseBody));
                String res = new String(responseBody);

                try {
                    JSONObject jsonObject = new JSONObject(res);

                    JSONObject jsonObjectBook = jsonObject.getJSONObject("EBOOK_APP");

                    JSONArray jsonArray = jsonObjectBook.getJSONArray("featured_books");

                    Log.e("TAG", "onSuccess: "+jsonArray.length() );

                    for (int i = 0; i < jsonArray.length(); i++) {

                        JSONObject object = jsonArray.getJSONObject(i);
                        String id = object.getString("id");
                        String cat_id = object.getString("cat_id");
                        String book_title = object.getString("book_title");

                        sliderList.add(new SubCategoryList(id, cat_id, book_title));

                    }

                    JSONArray jsonArrayLatestCat = jsonObjectBook.getJSONArray("category_list");
                    for (int i = 0; i < jsonArrayLatestCat.length(); i++) {

                        JSONObject object = jsonArrayLatestCat.getJSONObject(i);
                        String cid = object.getString("cid");
                        String category_name = object.getString("category_name");
                        String total_books = object.getString("total_books");
                        String cat_image=object.getString("category_image");

                        categoryLists.add(new CategoryList(cid, category_name, total_books,cat_image));

                    }

                    JSONArray jsonArrayLatest = jsonObjectBook.getJSONArray("latest_books");
                    for (int i = 0; i < jsonArrayLatest.length(); i++) {

                        JSONObject object = jsonArrayLatest.getJSONObject(i);
                        String id = object.getString("id");
                        String cat_id = object.getString("cat_id");
                        String book_title = object.getString("book_title");

                        latestList.add(new SubCategoryList(id, cat_id, book_title));

                    }

                    JSONArray jsonArrayPopular = jsonObjectBook.getJSONArray("popular_books");
                    for (int i = 0; i < jsonArrayPopular.length(); i++) {

                        JSONObject object = jsonArrayPopular.getJSONObject(i);
                        String id = object.getString("id");
                        String cat_id = object.getString("cat_id");
                        String book_title = object.getString("book_title");

                        mostPopularList.add(new SubCategoryList(id, cat_id, book_title));

                    }

                    latestAdapterGVLatest = new LatestHomeAdapterGV(getActivity(), latestList, "home_latest");
                    recyclerViewLatest.setAdapter(latestAdapterGVLatest);

                    latestAdapterGVPopular = new LatestHomeAdapterGV(getActivity(), mostPopularList, "home_most");
                    recyclerViewPopular.setAdapter(latestAdapterGVPopular);

                    categoryAdapter = new CategoryHomeAdapter(getActivity(), categoryLists);
                    recyclerViewCategory.setAdapter(categoryAdapter);

                    mAdapter = new CustomViewPagerAdapter();
                    mViewPager.setAdapter(mAdapter);
                    autoPlay(mViewPager);
                    progressBar.setVisibility(View.GONE);

                } catch (JSONException e) {
                    Log.e("TAG", "onSuccess: "+e);
                    Toast.makeText(getActivity(), ""+e, Toast.LENGTH_SHORT).show();
                }

            }

            @Override
            public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {

                Toast.makeText(getActivity(), "Failed Json", Toast.LENGTH_SHORT).show();
            }
        });
...