裂缝处理,哈利波特下载,何欣纯
最近遇到一个请求api接口总是报401 unauthorized错误,起初是认为这个是平台返回的,后来用postman请求,发现平台其实返回的是一串json,里面带有一些权限验证失败的消息,但到我们代码里请求就自动变成401 unauthorized错误。用抓包工具抓取代码请求的平台返回数据,和用postman请求结果一致,都是有数据返回,但为什么到我们代码里就会变成401 unauthorized呢?
在网上查了一些资料后,对方平台在鉴权失败后返回在http头里标注了权限验证失败信息和401状态码,同时将错误消息也返回在body里。但到resttemplate后,检测到401异常,直接抛出异常,导致外部接收不到body信息。
解决方案:
在resttemplate 执行请求之前,加上下面这句话就可以实现忽略401错误。
1 resttemplate.seterrorhandler(new defaultresponseerrorhandler(){ 2 @override 3 public void handleerror(clienthttpresponse response) throws ioexception{ 4 if(response.getrawstatuscode() != 401){ 5 super.handleerror(response); 6 } 7 } 8 });
参考文章:https://blog.csdn.net/achang07/article/details/80549741
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
浅析我对 String、StringBuilder、StringBuffer 的理解
使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)
Springboot整合freemarker 404问题解决方案
引入mybatis-plus报 Invalid bound statement错误问题的解决方法
网友评论