前情提要
Httpclient这玩意属实很久很久没有以原生的方式使用了,现在基本都是RestTemplate或OpenFeign。最近做一个项目,项目框架已经搭好了,用的Httpclient原生的方式,封装好了工具类,好吧,既然有了,那就用吧。
本集看点
小项目,上线后,发现了点问题,因为这个项目的业务数据基本都是第三方提供。所以给Httpclient加日志排查问题也是必不可少的,但是加完后,就发现Httpclient返回的数据没有了。查看日志,日志里面是有数据的,但用的时候数据却是null。有意思~
破案
这是当时加日志的地方:
看起来没问题是吧。打印一下返回的数据。一模一样的代码。但结果确实log打印有数据,return没有数据。有意思~
根据排查,发现EntityUtils.toString读取流后,流就关闭了,在次读取,就是null了…
结语
本来问题也是个小问题,慢慢看就能找到。但因为是和随申办有关的功能(扫随申码),所以,解决问题时,打印的这条日志,导致出现了另一个问题,情况还是比较严峻的。
这领悟是这么的痛~