AndroidAnnotations的Rest客户端日志记录
我正在尝试使用AndroidAnnotation的rest客户端访问web服务。我收到以下错误:AndroidAnnotations的Rest客户端日志记录,android,spring,web-services,rest,android-annotations,Android,Spring,Web Services,Rest,Android Annotations,我正在尝试使用AndroidAnnotation的rest客户端访问web服务。我收到以下错误: org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Unexpected character ('f' (code 102)): was expecting double-quote to start field name 如何使rest客户端记录它收到的实际响应?
org.springframework.http.converter.HttpMessageNotReadableException:
Could not read JSON: Unexpected character ('f' (code 102)):
was expecting double-quote to start field name
如何使rest客户端记录它收到的实际响应?我无法想象为什么我的web服务会返回这个响应,但除非我能看到完整的响应,否则我无法调试它。我必须在Spring框架级别设置某种选项吗
我也想看看我发送的请求的正文
谢谢你的帮助 虽然我不使用
AndroidAnnotations
,也不能直接回答您的问题,但我想提出另一种解决方案。你可以使用一个叫做Fiddler的小实用程序。它可以为调试网络活动创造奇迹,无论是请求、响应、HTTP头还是RESTAPI通信中的任何其他重要内容
你可以找到一个关于如何设置你的环境以使用Fiddler的完整教程,但要列举几个关键步骤(链接页面上有介绍,你也可以在那里找到有用的图片)
设置小提琴手:
RestTemplate
的代码为。因此,我们可以找出哪个标签用于日志记录:
private static final String TAG = "RestTemplate";
您无法查看此标记的日志条目吗?您使用的是哪种转换器/提取器?请张贴调用堆栈
在中,他们建议使用拦截器
记录请求/响应。因此,您可以实现自己的拦截器,如:
public class LoggingInterceptor implements ClientHttpRequestInterceptor {
@Override
public ClientHttpResponse intercept(HttpRequest request, byte[] data, ClientHttpRequestExecution execution) throws IOException {
logRequest(request);
ClientHttpResponse response = execution.execute(request, data);
logResponse(response);
return response;
}
private void logRequest(HttpRequest request) {
// log it
}
private void logResponse(ClientHttpResponse response) {
// log it
}
}
您可以在
@Rest
注释(字段interceptors
)中启用拦截器。实际上我以前没有使用restapi,但我认为您可以按照建议使用拦截器获得响应。