Retrofit 2返回响应数据对象以供进一步使用

时间:2016-05-16 18:57:34

标签: java android retrofit pojo retrofit2

我在Android中使用POJO和Retrofit2来调用REST服务来获取一些数据。我确实收到了response.body()中的数据,但我不希望将这些数据分配给任何Android UI组件。我想得到这个返回的对象并返回或在onResponse之外工作。

抱歉,我是JAVA或回调的新手,但在搜索时发现我需要编写回调但不知道如何编写它。有人可以请帮助。

以下是代码:

public String getUserIPCountry(Context context){       

    ipf = new Ipinfo();

    IpinfoAPI.Factory.getInstance().getCountryCode().enqueue(new Callback<Ipinfo>() {
        @Override
        public void onResponse(Call<Ipinfo> call, Response<Ipinfo> response) {

            if(response.isSuccessful()){

               //Want to return/use below data outside of this method
               //response.body().getCountryCode();
            }
        }

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

        }
    });

    return null;
}    

1 个答案:

答案 0 :(得分:0)

在操作getUserIPCountry中设置当数据从服务器到达时将调用的Callback。 执行不会停止并等待响应。 如果来自服务器的响应正常,则会调用onResponse,如果出现问题,将调用onFailure

因此,在onResponse的{​​{1}}方法中,您应该通知感兴趣的类数据到达,(例如,显示数据的ui类)。