springboot RestTemplate打印http信息

2018-03-16  本文已影响819人  我想编程

我们在使用RestTemplate的时候,往往需要打印http的请求信息,我这里采用ClientHttpRequestInterceptor拦截requestresponse的方式,具体看以前的文章
RestTemplate反序列化带泛型的返回值

但是有一个问题是,ClientHttpResponsegetBody()返回值是一个InputStream,如果在拦截器将ClientHttpResponse的body读取了,那么需要获得返回信息的地方就得不到相应体。

解决方案是,在new RestTemplate的时候,使用BufferingClientHttpRequestFactory,具体代码如下:

    public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
        RestTemplate restTemplate = new RestTemplate(
                new BufferingClientHttpRequestFactory(factory));
        return restTemplate;
    }

参考资料

上一篇 下一篇

猜你喜欢

热点阅读