Boa*_*nut 2 java android retrofit2 okhttp3
我必须从服务器发出一个get请求,它给了我很多信息.从我发现的搜索结果看来,我只能用模型类来做到这一点.事情是,为了涵盖服务器发送给我的所有响应,我必须制作53个模型类来存储信息.
我想知道是否有一个更简单的方法,比如将信息存储在JSON或其他东西中.
我正在使用OKHttp进行Retrofit.
getTimeSessionsCall.enqueue(new Callback<JSONObject>() {
@Override
public void onResponse(Call<JSONObject> call, Response<JSONObject> response) {
Log.i("getTimeSessions",Integer.toString(response.code()));
}
@Override
public void onFailure(Call<JSONObject> call, Throwable t) {
}
});
Run Code Online (Sandbox Code Playgroud)
我尝试过这种电话,它什么都没存储.代码是200,但JSON仍为空.
先感谢您!
JSONObject为null的原因是因为Retrofit不知道如何解析您的响应.你可以做的是将响应作为字符串获取,然后从中构造一个JsonObject.为了做到这一点,你需要使用 ScalarConvertorsFactory,你的方法将是这样的
getTimeSessionsCall.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
// Get the string and convert to JSONObject
}
@Override
public void onFailure(Call<String> call, Throwable t) {
}
});
Run Code Online (Sandbox Code Playgroud)
别忘了添加
compile 'com.squareup.retrofit2:converter-scalars:2.1.0' 使用时构建Retrofit实例时添加转换器工厂 addConvertorFactory(ScalarsConvertorFactory.create())
| 归档时间: |
|
| 查看次数: |
1952 次 |
| 最近记录: |