其余的模板记录POST数据(RestTemplate logging POST data)

2019-09-03 12:03发布

我resttemplate.exchange()失败的POST请求,与服务器返回500错误。

我试图设置根日志记录级别为DEBUG,但返回500错误之前记录什么。 以确保我的日志记录配置是正确的,我的resttemplate调用之前添加了一行

HttpClient client = new DefaultHttpClient();
client.execute(new HttpGet("http://google.com"));

在这种情况下,确实有很多日志消息的出现。

所以我怎样才能使RestTemplate导出调试数据?

感谢杨

Answer 1:

从您的分析看来,你希望RestTemplate使用Apache的HttpClient。

然而,在默认情况下,春季RestTemplate不使用Apache的HttpClient但使用JDK设施(java.net.URL中#的openConnection()等)SimpleClientHttpRequestFactory的手段。

org.springframework.http.client.support.HttpAccessor声明:

private ClientHttpRequestFactory requestFactory = new
SimpleClientHttpRequestFactory();

据我所知,这个客户端不支持登录请求/响应。

要改变RestTemplate使用HttpClient的,试试这个:

new RestTemplate(new HttpComponentsClientHttpRequestFactory());

那么日志配置应使类别org.apache.http.wire在级别debug的完整的请求/要记录的响应。



文章来源: RestTemplate logging POST data