当前位置: 首页 > 知识库问答 >
问题:

如何使用改型从get url获取响应

孟承嗣
2023-03-14

我想通过改型从get api获得响应,但我不知道如何检查状态:success,因此在给定完整代码和api响应的下面显示空响应,

我的回应是:

{
   status: "success",
   data: [
           {
            Country_id: "1",
            Country_name: "Maldives",
            Continent_name: "Asia",
           }
]
}

我的接口类:

public interface GetDataService 
{
     @GET("/Webserices/country_random.php")
     Call<List<RetroPhoto>> getAllPhotos();
}

POJO:

public class RetroPhoto 
{
    @SerializedName("Country_id")
    private Integer id;
    @SerializedName("Country_name")
    private String title;
    @SerializedName("Continent_name")
    private String name;

 public RetroPhoto(Integer id, String title, String name) {
    this.id = id;
    this.title = title;
    this.name= name;
}

public Integer getId() {
    return id;
}

public void setId(Integer id) {
    this.id = id;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getName() {
    return name;
}

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

下面是MainActivity类中的调用方法:

    GetDataService service = RetrofitClientInstance.getRetrofitInstance().create(GetDataService.class);
    Call<List<RetroPhoto>> call = service.getAllPhotos();
    call.enqueue(new Callback<List<RetroPhoto>>() {
        @Override
        public void onResponse(Call<List<RetroPhoto>> call, Response<List<RetroPhoto>> response) {
            progressDoalog.dismiss();
            Log.e("jellosdsd", "onResponse:********************* " + response.body());

        }

        @Override
        public void onFailure(Call<List<RetroPhoto>> call, Throwable t) {
            progressDoalog.dismiss();
            Toast.makeText(MainActivity.this, "Something went wrong...Please try later!", Toast.LENGTH_SHORT).show();
        }
    });

上面给出了完整的代码,但它显示空响应,因为我不知道如何检查状态:“success”和改装中的数据数组对象。

所以请谁能解释一下如何在改装中检查它。

谢谢。

共有1个答案

冯阳云
2023-03-14

尝试创建自定义响应类。它应该看起来像这样:

public class RetroPhotoResponse {

private String status;
private List<RetroPhoto> data;

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

public List<RetroPhoto> getData() {
    return data;
}

public void setData(List<RetroPhoto> data) {
    this.data = data;
}

}

 类似资料:
  • 如何将此Json响应转换为改装bean我得到了Gson错误,就像使用JsonReader一样。setLenient(true)在第1行第1列路径接受格式错误的JSON$ api调用为 字符串CATEGORY\u API=“”https://api.callingservice.com"; 请帮助我解决这个问题,如何将Json响应转换为Bean,我的Bean类如下

  • 我可以很容易地得到消息,但我不能从响应中得到“他”数组。 下面是我的数据模型类 这就是我向服务器发送请求的方式:

  • 我使用的是改装版2.0b2。收到响应后,我尝试通过以下方式从响应中获取InputStream: 但是这个应用程序一直在扔: 尽管回复正确。我到底做错了什么?

  • 如何获得原始json输出。如果可能的话,我不想实现用户数据类和解析器。有什么办法吗? 标记重复的帖子(获得原始HTTP响应与改造)不是为Kotlin和我需要Kotlin版本。

  • 是否可以使用改型库只累加字符串响应?我有一种情况,我需要在我的链接上添加查询,以便该链接看起来像:localhost//register?handle=someid SomeID是整数,当我这样做时,我将从服务器收到由20个字符组成的字符串格式的响应。我怎样才能得到那个回应?改型甚至可以处理不是Json格式的响应吗?