RestTemple请求GET接口403

问题描述

使用oss接口获取资源的时候,通过浏览器可以直接下载,在代码中使用RestTemplate的get方式访问的时候,出现403错误

问题排查

因为返回状态码是403,就想着是不是授权问题,因为有的接口是有防抓取规则的,但是一系列操作之后无果,开启debug进行问题排查:

powershell 复制代码
debug: true

比对url之后发现实际调用的url已经够被改变

% -->%25

restTemplate默认的生成url的方式会出现该问题,所以考虑自己将url转成uri对象

问题代码

java 复制代码
		ResponseEntity<byte[]> forEntity = restTemplate.getForEntity(ossUrl, byte[].class);

修改之后代码

java 复制代码
		URI uri= new URI(ossUrl);
		ResponseEntity<byte[]> forEntity = restTemplate.getForEntity(uri, byte[].class);

至此,问题已解决

相关推荐
GoodStudyAndDayDayUp13 分钟前
RUO-VUE-PRO权限关联sql
java·数据库·sql
⑩-28 分钟前
RabbitMQ 架构和工作原理?RabbitMQ 延迟队列如何实现?
java·分布式·架构·rabbitmq
子非鱼@Itfuture30 分钟前
try-catch和try-with-resources区别是什么?try{}catch(){}和try(){}catch(){}有什么好处?
java·开发语言
Nyarlathotep01131 小时前
线程创建和Thread类
java
阿波罗尼亚1 小时前
JDK17 新特性
java
独自破碎E1 小时前
【面试真题拆解】Spring事务机制
java·spring·面试
我是咸鱼不闲呀1 小时前
力扣Hot100系列21(Java)——[多维动态规划]总结(不同路径,最小路径和,最长回文子串,最长公共子序列, 编辑距离)
java·leetcode·动态规划
lihao lihao1 小时前
二分查找
java·数据结构·算法
Albert Edison1 小时前
【C++11】可变参数模板
java·开发语言·c++
代码栈上的思考1 小时前
消息队列持久化:文件存储设计与实现全解析
java·前端·算法