gpt4 book ai didi

java - 如何使用改造获取其中的数据

转载 作者:行者123 更新时间:2023-12-02 05:51:21 26 4
gpt4 key购买 nike

如何使用Retrofit获取这种类型的JSON数据?我该如何解决这个问题?

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"
}
]
}

最佳答案

如果您查看改造文档,您需要一些东西才能使其正常工作。

  1. API接口(interface)
  2. 改造实例和 Http 客户端(对于 header 等)
  3. 服务等级

这是我们的 API

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

我们必须创建我们的电影响应数据对象。

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

现在我们有了一个服务,让我们创建一个简单的 Retrofit 工厂,它将为我们创建 Retrofit。

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();
}
}

我们的简单服务类别将是。

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

现在我们已经拥有系统所需的所有组件,下面是我们如何将它们粘合在一起。

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
}
});
}

}

关于java - 如何使用改造获取其中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56044562/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com