美文网首页
springboot RestTemplate打印http信息

springboot RestTemplate打印http信息

作者: 我想编程 | 来源:发表于2018-03-16 11:08 被阅读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;
        }
    

    参考资料

    相关文章

      网友评论

          本文标题:springboot RestTemplate打印http信息

          本文链接:https://www.haomeiwen.com/subject/jlelqftx.html