I am attempting to use AndroidAnnotation's rest client to access a web service. I am receiving the following error:
org.springframework.http.converter.HttpMessageNotReadableException:
Could not read JSON: Unexpected character ('f' (code 102)):
was expecting double-quote to start field name
How can I make the rest client log the actual response it received? I can't imagine why my web service is returning this response, but I can't debug it unless I can see the full response. Do I have to set some kind of option at the level of the Spring framework?
I would also like to see the body of the request I am sending.
Thanks for your help!
Here we see that AndroidAnnotations is a wrapper around the Spring Android RestTemplate Module. The code for the
RestTemplate
is here. So we can find out which TAG is used for logging:Are you not able to see log entries for this TAG? Which converter / extractor are you using? Please post the call stack.
In the wiki they recommend to use a
Interceptor
for logging request / response. So you could implement your own interceptor like:You enable the interceptor in the
@Rest
annotation (fieldinterceptors
).While I do not use
AndroidAnnotations
and cannot answer your question directly, I would like to propose an alternative solution. You could use a great little utility program called Fiddler. It can do wonders for debugging networking activity, whether it be requests, responses, HTTP headers or practically anything else that would matter in a REST API communication.You can find a full tutorial on how to setup your environment to use Fiddler here, but to name a few crucial steps (credit goes to the linked page, you can also find helpful pictures there)
Setup Fiddler:
Setup your device:
Now you will see all the needed details for your REST API calls which makes debugging much easier.