个人开发的基于内存的请求监控系统。欢迎star和一同参与。https://github.com/standup-jb/tortoise
今天在Spring-boot项目中使用RestTemplate的时候遇到了问题。现在做一个小的总结也是给其他遇到这个问题的人给一个提示。
背景重现:用RestTemplate发送Post请求去其他微服务获取数据。其他微服务返回了4XX的错误code。这个时候RestTemplate就抛出错误,将错误打印出来了。但是我想要拿到这个错误的code进行下一步的操作。于是看了一下RestTemplate的部分代码。发现用RestTemplate作为HttpClient,你在上层没办法捕获到错误。
更改方案: 今天在google仔细寻找以后,发现有方法可以解决这个问题。如果百度搜索不到问题还是推荐上google去找吧,一般都还是可以找到解决方案的。解决方案附在后面第二部分。
我调用RestTemplate的代码如下:
RestTemplate restTemplate = restTemplateConfig.tokenRetrieveRestTemplate();
HttpEntity<MultiValueMap<String,String>> httpEntity= new HttpEntity(tokenParamUtil.getMultiValueParams(code),headers);
ResponseEntity<Token> response = restTemplate
.exch