I am struggling with retrofit. When I post a request in my browser i get such a request:
And that's what I expect. However, when I try to parse this in my app I kept getting responses as in this thread. I've found tried to implement this solution, but my errorBody
does not even resemble the answer from my browser:
How can I get this JSON?
Just in case this is my response handler code:
void handleResponse(Response response){
TextView textView = (TextView)findViewById(R.id.empty_list_tv);
if(response.isSuccessful())
textView.setText(response.toString());
else {
Gson gson = new Gson();
ErrorResponse errorResponse = gson.fromJson(
response.errorBody().toString(),
ErrorResponse.class);
textView.setText(response.errorBody().toString());
}
}
And my ErrorResponse
:
public class ErrorResponse {
@SerializedName("message")
private String message;
@SerializedName("error")
private Error error;
public String getMessage() {
return message;
}
public Error getError() {
return error;
}
}
You are using toString()
in GSON's fromJson which is not a JSON content. Replace your toString()
as string()
which will give you the JSON body.
Also make sure to use the string()
method only once and save the response in a variable, because it will return empty string if you used it again.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With