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

至此,问题已解决

相关推荐
weixin_441455265 小时前
说说Java有哪些集合类
java·开发语言
合作小小程序员小小店5 小时前
web网页开发,在线%台球俱乐部管理%系统,基于Idea,html,css,jQuery,jsp,java,ssm,mysql。
java·前端·jdk·intellij-idea·jquery·web
程序定小飞6 小时前
基于springboot的作业管理系统设计与实现
java·开发语言·spring boot·后端·spring
晓庆的故事簿6 小时前
windows下载和使用minio,结合java和vue上传文件
java·开发语言
程序员小假6 小时前
我们来说一下 Mybatis 的缓存机制
java·后端
qq_336313936 小时前
java基础-学生管理系统升级
java
弥巷6 小时前
【Android】Android内存缓存LruCache与DiskLruCache的使用及实现原理
android·java
好好沉淀7 小时前
Apache 工具包(commons-io commons-lang3 )保姆介绍
java·ide
毕设源码-邱学长7 小时前
【开题答辩全过程】以 服装购物平台为例,包含答辩的问题和答案
java·eclipse