android - 如何在 Retrofit 2.0.0 beta 1 中获取简单的 JSON 对象?

标签 android json retrofit

我正在尝试转换看起来像这样的简单响应

{
  "field_one": "bearer",
  "field_two": "fgh",
  "field_three": 0
}

我使用的是最新版本的 Retrofit 2.0.0-beta1。我以前从未使用过 Retrofit。有很多旧版本 Retrofit 的教程和示例。我尝试了适用于旧版本但不适用于最新版本的不同技术。由于缺少最新版 Retrofit 的文档,我找不到解决方案。

我想使用最新版本。

这是POJO

public class Auth {
    @SerializedName("field_one")
    @Expose
    private String fieldOne;

    @SerializedName("field_two")
    @Expose
    private String fieldTwo;

    @SerializedName("field_three")
    @Expose
    private Integer fieldThree;

    // setter and getter etc. etc. 
}

这是我正在使用的界面

interface Authorization {
   @Headers("Authorization: This is some header")
   @GET("api/v1/mytoken")
   Call<Auth> getToken();
}

这是我调用服务的方式

  OkHttpClient client = new OkHttpClient();

  Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("https://myendpoint.com/")
            .client(client)
             .addConverterFactory(GsonConverterFactory.create())
            .build();

    Authorization serviceAuthorization = retrofit.create(Authorization.class);
    serviceAuthorization.getToken().enqueue(new Callback<Auth>() {
        @Override
        public void onResponse(Response<Auth> response) {
            Log.d("Response", ">>> "+ response.toString());
        }

        @Override
        public void onFailure(Throwable t) {
            Log.d("fail", ">>> "+ t.getMessage());
        }
    });

我无法获得输出。它只是打印这个

Response: >>> retrofit.Response@2567e2c3

我想获取 Auth Object 中的数据,稍后会用到。

请建议我最好的解决方案

谢谢!

最佳答案

我猜你没有看到你期望看到你的对象打印在这一行上——

Log.d("Response", ">>> "+ response.toString());

这将在响应中调用 toString 方法。如果您想在反序列化对象上调用它,请调用 body()方法先——

if(response.isSuccess()) {
    Log.d("Response", ">>> "+ response.body().toString());
} else {
    Log.d("Response", "Error - " + response.code())
} 

关于android - 如何在 Retrofit 2.0.0 beta 1 中获取简单的 JSON 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32706354/

相关文章:

android - 如何知道字符串是否有椭圆形

android - 使用Service进行操作——异步任务

Android RecyclerView 多过滤器

android - 如何使用 Retrofit 从异步回调中返回 String 或 JSONObject?

android - 使用 RxJava for Android 重试 observable 直到满足某些条件

oncreate - 如何在 Android 中打开的应用程序上运行代码?

javascript - 在 Node.js 中将 2 个 json 对象合并为一个

java - 反序列化在 gson-2.1 中有效,但在 gson-2.4.4 中无效

javascript - 根据前 3 列对 JSON 数据进行分组,并对 HTML/JS 中第 4 列的编号进行求和

android - 从响应中获取 header (改造/OkHttp 客户端)