1 Câu hỏi: Làm thế nào để có được dữ liệu trong này bằng cách sử dụng trang bị thêm

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Làm cách nào để NHẬN loại dữ liệu JSON này bằng cách sử dụng Trang bị thêm ? Làm thế nào tôi có thể giải quyết vấn đề này?

MainActivity.java

Api.getClient().getCategoryList(new Callback<List<Movie>>() {
    @Override
    public void success(List<Movie> movies, Response response) {
        if (movies.get(0).getError().equalsIgnoreCase("false")) {
           itemsList1=movies;
           setCategorydataRecycle();
        }
    }
}
{
    "error": false,
    "category": [
        {
            "category_id": "1",
            "category_name": "Adults",
            "categroy_image": "assets/category-image/cat1.jpg"
        },
        {
            "category_id": "2",
            "category_name": "Kids",
            "categroy_image": "assets/category-image/cat1.jpg"
        },
        {
            "category_id": "3",
            "category_name": "Gym",
            "categroy_image": "assets/category-image/cat1.jpg"
        }
    ]
}
    
0
  1. Điều gì phải thử cho đến nay?
    2019-05-08 15: 56: 03Z
  2. thêm đối tượng Movie vào câu hỏi của bạn
    2019-05-08 15: 58: 51Z
1 Câu trả lời                              1                         

Nếu bạn xem tài liệu trang bị thêm, bạn cần một số thứ để nó hoạt động.

  1. Giao diện Api
  2. Trang bị thêm trang web và ứng dụng khách http (Đối với các tiêu đề, v.v.)
  3. Lớp dịch vụ

Đây là API của chúng tôi

 interface API {    
   @GET("/movies")
   Call<MovieResponse> retrieveMovies();
 }

Chúng tôi phải tạo đối tượng dữ liệu phản hồi phim của mình.

class MovieResponse {
    List<Movie> movies;
    boolean error;
}

Bây giờ chúng tôi có một dịch vụ, hãy tạo một nhà máy Retrofit đơn giản sẽ tạo ra Retrofit cho chúng tôi.

public class RetrofitFactory {

    private static final String BASE_URL = "www.myurl.com";
    private Retrofit mRetrofit = null;

    public static Retrofit create(){
        if(mRetrofit == null){
            return createRetrofit();
        }
        return mRetrofit;
    }

    private static Retrofit createRetrofit(){
        return new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .client(createOkHttpClient())
            .addConverterFactory(GsonConverterFactory.create(gson))
            .build();
    }

    private  static OkHttpClient createOkHttpClient(){
        return new OkHttpClient().newBuilder().addInterceptor(new Interceptor() {
            @Override
            public okhttp3.Response intercept(Chain chain) throws IOException {
                Request originalRequest = chain.request();

                Request.Builder builder = originalRequest.newBuilder().header("Authorization",
                    Credentials.basic("aUsername", "aPassword"));

                Request newRequest = builder.build();
                return chain.proceed(newRequest);
            }
        }).build();
    }
}

Lớp dịch vụ đơn giản của chúng tôi sẽ là.

public class Services {
    public static  API getMoviesService(){
        return RetrofitFactory.create().create(API.class);
    }
}

Bây giờ chúng tôi có tất cả các thành phần chúng tôi cần cho hệ thống của mình, bên dưới là cách chúng tôi dán nó lại với nhau.

public class MoviesRepository {

    public void retrieveMovies() {
        API api = Services.getMoviesService();
        Call <MovieResponse> call = api.retrieveMovies();
        call.enqueue(new Callback<MovieResponse>() {
            @Override
            public void success(MovieResponse mvRes, Response response) {
                // Get your error and movies list here
                // mvRes.error;
                //mvRes.movies
            }
        });
    }

}
    
0
2019-05-08 17: 36: 35Z
nguồn đặt đây