Spring OAuth2RestTemplate getForEntity 中文乱码解决方法
最近在调试微信支付,遇到蛮多的坑,不过还好网上大多都有对应的解决方案,还算比较顺利地对接好了!这里记录一个和微信支付过程无关的坑,也是很少人提到的。这个BUG最开始出现是由于我将微信账号从测试号换为了正式的公众号信息,这也就导致之前的所有测试用户都要重新关注微信,并且也会重新生成对应的OpenID和用户信息。然后呢,这时候发现只有我一个人的微信账号可以正常进入测试系统,而其他同事的微信账号都无法进入测试系统,并且都陷入无限循环刷新的情况中。即使将数据库中数据清空,将微信缓存清理掉,仍然是我可以正常进入系统,而其他同事都不行。实在是很费解!最后实在是没有办法,只能在本地进行跟踪调试,这才发现新建用户的接口出现了400
的错误,里面提示有UTF_8
的编码错误。然后再和同事们的微信账号一对比,发现我的微信昵称是拼音,而其他人都是中文,所以这也是我能够正常进入系统的原因。接下来就是解决这个UTF_8
的编码错误:
最开始我搜索OAuth2RestTemplate
、getForEntity
、utf-8
相关的关键词的时候,发现并没有什么参考资料,后来再跟进源码里面看到public class OAuth2RestTemplate extends RestTemplate implements OAuth2RestOperations
,而RestTemplate
里面有HttpMessageConve