Android 如何在改型2.0.0 beta 1中获得简单的JSON对象?
我试图转换这个简单的回答,看起来像这样Android 如何在改型2.0.0 beta 1中获得简单的JSON对象?,android,json,retrofit,Android,Json,Retrofit,我试图转换这个简单的回答,看起来像这样 { "field_one": "bearer", "field_two": "fgh", "field_three": 0 } 我使用的是翻新2.0.0-beta1的最新版本。我以前从未使用过改装。有许多教程和旧版本改装的示例。我尝试了不同的技术,适用于旧版本,但不适用于最新版本。由于缺乏最新版本的改装文档,我无法找到解决方案 我想用最新的版本 这是波乔 public class Auth { @SerializedName("fie
{
"field_one": "bearer",
"field_two": "fgh",
"field_three": 0
}
我使用的是翻新2.0.0-beta1的最新版本。我以前从未使用过改装。有许多教程和旧版本改装的示例。我尝试了不同的技术,适用于旧版本,但不适用于最新版本。由于缺乏最新版本的改装文档,我无法找到解决方案
我想用最新的版本
这是波乔
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();
}
我想在Auth对象中获取数据,以便以后使用
请给我推荐最好的解决方案
谢谢 我猜您没有看到您希望看到您的对象打印在这一行-- 这将调用响应上的
toString
方法。如果要在反序列化对象上调用它,请先调用该方法--
你有什么问题?你收到编译器消息了吗?运行时错误?没有错误。我更新了问题我得到了什么输出和我想要什么使用响应。toStirng()我得到了
response:>>>改型。Response@2567e2c3
但是当我使用response.body().toString()时,我得到的是NullPointerException,我也尝试了response.raw().toString()现在我得到的是这个响应{protocol=http/1.1,code=404,message=notfound,url=}这很有帮助——404没有找到,所以你没有调用正确的端点。是的,你的调用有问题,导致你得到404。查看我的编辑以避免NPE。如果需要错误响应的文本,也可以在响应上调用errorBody()
,但这可能只是我在[link]()中的文档中给出的标题“not found”的一些变体。我还尝试在拦截器中提供标题。但同样的404反应
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
Log.d("Response", ">>> "+ response.toString());
if(response.isSuccess()) {
Log.d("Response", ">>> "+ response.body().toString());
} else {
Log.d("Response", "Error - " + response.code())
}