Как получить данные из ответа Retrofit2. При этом, ответ response.body() я вижу в логе
Retrofit2
С сервера приходит ответ (тестовый)
{"a":"start","b":"string B","c":"https:\/\/"}
В логе я вижу ответ
D/Req: onResponse() returned ReqServer: {a=start, b=string B, c=https://}
я так понимаю, что Retrofit уже распарсил ответ и присвоил значения переменным У меня не получается получить эти значения Пробовал через HashMap, пробовал просто создать класс и присвоить из в классе, ну не выходит у меня каменный цветок!
(Otvet otvet= gson.fromJson(response.body().toString(),Otvet.class);)
получаю ошибки
at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1568)
at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:491)
at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:414)
вот код запроса:
public class ReqServer {
private static final String TAG="Req";
private String a,b,resultHTTP;
private final String server ="http://service.kia-chip.ru";
private Gson gson= new GsonBuilder().create();
Otvet otvet=new Otvet();
private Retrofit retrofit=new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(server)
.build();
private Request req=retrofit.create(Request.class);
public String requestServer(final String a, String b){
HashMap<String,String> postDataParams=new HashMap<String, String>();
postDataParams.put("a", a);
postDataParams.put("b", b);
Call<Object> call=req.performPostCall(postDataParams);
call.enqueue(new Callback<Object>() {
@Override
public void onResponse(Call<Object> call, Response<Object> response) {
Log.d(TAG, "onResponse() returned ReqServer: " + response.body());
//Otvet otvet= gson.fromJson(response.body().toString(),Otvet.class);
}
@Override
public void onFailure(Call<Object> call, Throwable t) {
resultHTTP="Request error";
}
});
return resultHTTP;
}
Класс модель(максимально простая)для теста
public static class Otvet{
public String a;
public String b;
public String c;
public void getVolime(){
this.a=a;
this.b=b;
this.c=c;
}