1 回答
TA贡献1883条经验 获得超3个赞
Retrofit 自带了转换的功能,可以将服务器返回的数据自动解析为你的Java Bean,所以这个地方你不能使用Response。
你可以直接用 HashMap<String,String> 代替 Response,即:
Call<HashMap<String,String>> call = myService.getDeviceData(room_id, device_id);
call.enqueue(new Callback<HashMap<String,String>>() {
@Override
public void onResponse(Call<HashMap<String,String>> call, Response<HashMap<String,String>> response) {
HashMap<String,String> map = response.body();
// TODO 显示 response.
}
@Override
public void onFailure(Call<HashMap<String,String>> call, Throwable t) {
System.out.println("设备数据获取失败");
// TODO: 16/2/22 错误处理
}
});
相应的,你的接口也要改返回值的范型,我这边用的是Retrofit 2.0,你的版本如果回调中没有Call<HashMap<String,String>> call 就忽略。
同样的你还可以 把HashMap<String,String>换为JSONObject(实际上里面就是Map)
添加回答
举报