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);

至此,问题已解决

相关推荐
轮到我狗叫了10 分钟前
力扣.1471数组的k个最强值,力扣.1471数组的k个最强值力扣1576.替换所有的问号力扣1419.数青蛙编辑力扣300.最长递增子序列
java·数据结构·算法
秋野酱20 分钟前
基于SpringBoot的家政服务系统设计与实现(源码+文档+部署讲解)
java·spring boot·后端
趁你还年轻_22 分钟前
常用的Java工具库
java
不再幻想,脚踏实地28 分钟前
Spring Boot 日志
java·spring boot·后端
风象南1 小时前
SpringBoot中10种动态修改配置的方法
java·spring boot·后端
金斗潼关1 小时前
基于OAuth2+SpringSecurity+Jwt实现身份认证和权限管理后端服务
java·鉴权
代码小将4 小时前
Leetcode209做题笔记
java·笔记·算法
专注_每天进步一点点4 小时前
idea 启动Springboot项目在编译阶段报错:java: OutOfMemoryError: insufficient memory
java·spring boot·intellij-idea
dhxhsgrx5 小时前
PYTHON训练营DAY25
java·开发语言·python
不知几秋6 小时前
数字取证-内存取证(volatility)
java·linux·前端