Spring Boot 遇到 RFC 7230 and RFC 3986 的问题
分享一个小案例。
这两天因为 log4j 的天坑导致别的事情都没做,光升级组件了。恰巧手上有个老项目顺便需要升级一下 spring-boot,从 https://mvnrepository.com/ 上查到今天最新的版本是 2.1.6 于是便直接升级了,然后问题发生了。
线上的服务忽然开始报 400 Bad Request 错误,查了下错误日志,看到了这个提示:Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986。虽然26个字母我都认识,但他们连成的这句话让我还是不知道如何解决。百度一下发现是因为请求的字符串中包含了 |,尽管最佳的解决方式是在请求端做一次 encode,但这种 native 的线上项目是不可能在短时间内完成全量升级的。

