gpt4 book ai didi

android - 无法使用改造库获取数据

转载 作者:搜寻专家 更新时间:2023-11-01 08:24:03 24 4
gpt4 key购买 nike

Hai I 是改造的新手,我的目标是尝试使用改造库从 url 获取数据,这是我的 json 数据

enter image description here

我想在每个数组中显示名称。

这里是 gson 转换的 Pojo 类

RestResponse.java

public class RestResponse {
@SerializedName("messages")
@Expose
private List<String> messages = null;
@SerializedName("result")
@Expose
private List<Result> result = null;

public List<String> getMessages() {
return messages;
}

public void setMessages(List<String> messages) {
this.messages = messages;
}

public List<Result> getResult() {
return result;
}

public void setResult(List<Result> result) {
this.result = result;
}
}

和第二个 Result.java

public class Result {
@SerializedName("name")
@Expose
private String name;
@SerializedName("alpha2_code")
@Expose
private String alpha2Code;
@SerializedName("alpha3_code")
@Expose
private String alpha3Code;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getAlpha2Code() {
return alpha2Code;
}

public void setAlpha2Code(String alpha2Code) {
this.alpha2Code = alpha2Code;
}

public String getAlpha3Code() {
return alpha3Code;
}

public void setAlpha3Code(String alpha3Code) {
this.alpha3Code = alpha3Code;
}

}

最后是RestResponseMain.java//Gson转换器生成的Example.java文件

public class RestResponseMain {

@SerializedName("RestResponse")
@Expose
private RestResponse restResponse;

public RestResponse getRestResponse() {
return restResponse;
}

public void setRestResponse(RestResponse restResponse) {
this.restResponse = restResponse;
}
}

通过使用上面的类,我试图通过以下方式检索数据

实际网址是:http://services.groupkt.com/country/get/all

我的 Apiclenit 文件是:

public class ApiClient {
public static final String BaseUrl="http://services.groupkt.com";
public static Retrofit retrofit = null;
public static Retrofit getData()
{
if(retrofit==null)
{
retrofit = new Retrofit.Builder().baseUrl(BaseUrl).addConverterFactory(GsonConverterFactory.create()).build();
}



return retrofit;
}
}

ApiInterface 是

public interface ApiInterface {
@GET("/country/get/all")
Call<RestResponse> getData();
}

在 MainActivity 中,我使用的操作是

ApiInterface apiInterface = ApiClient.getData().create(ApiInterface.class);
Call<RestResponse> call = apiInterface.getData();
pDialog.show();
call.enqueue(new Callback<RestResponse>() {
@Override
public void onResponse(Call<RestResponse> call, Response<RestResponse> response) {
pDialog.dismiss();
List<Result> list = response.body().getResult();
MyRecyclerRetrofitAdapter adapter = new MyRecyclerRetrofitAdapter(MainActivity.this,list);
rView.setAdapter(adapter);
}

@Override
public void onFailure(Call<RestResponse> call, Throwable t) {

}
});

在我使用的适配器文件中

holder.tvName.setText(data.get(position).getName());//using recycler & card view

最后我没有从上述过程中得到任何回应,我是改造概念的新手,我正在通过一些在线教程尝试这个。

根据上面代码中的 pojo 类向我建议可能的更改。

最佳答案

你绑定(bind)了一个错误的模型类,所以你只需要改变你的基本 url 需要以 "/" 结尾

RestResponse

RestResponseMain

API 客户端

public class ApiClient {
public final String baseUrl="http://services.groupkt.com/";
public static Retrofit retrofit;

public static Retrofit getData() {

if (retrofit == null) {
retrofit = new Retrofit.Builder()
.baseUrl(BaseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}
}

在API接口(interface)和MainActivty.show下面

API接口(interface)

public interface ApiInterface {
@GET("country/get/all")
Call<RestResponseMain> getData();
}

主要 Activity

ApiInterface apiInterface = ApiClient.getData().create(ApiInterface.class);
Call<RestResponseMain> call = apiInterface.getData();
pDialog.show();
call.enqueue(new Callback<RestResponseMain>() {
@Override
public void onResponse(Call<RestResponseMain> call, Response<RestResponseMain> response) {
pDialog.dismiss();
List<Result> list = response.body().getResult();
MyRecyclerRetrofitAdapter adapter = new MyRecyclerRetrofitAdapter(MainActivity.this,list);
rView.setAdapter(adapter);
}

@Override
public void onFailure(Call<RestResponseMain> call, Throwable t) {

}
});

关于android - 无法使用改造库获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47171964/

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