restTemplate 使用问题小记

使用restTemplate在后端进行接口转发, 期间包括文件上传, 预览和下载. 还有一些字符串或css/js文件的读取.

1. 文件上传

参考: RestTemplate转发MultipartFile

LinkedMultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
params.add("file", file.getResource());
// headers转发token等参数
// httpMethod 之前的请求方法
return new RequestEntity<>(params, headers, httpMethod, new URI(url));

2. 文件预览和下载

之前是使用Object接收
restTemplate.exchange(requestEntity, Object.class);
在返回文件和text时候会有HttpMessageNotWritableException异常
可参考: 被坑过后才知道学习HttpMessageConverter有多重要被坑過後才知道學習HttpMessageConverter有多重要 中的方式3.
或者使用byte[]接收
restTemplate.exchange(requestEntity, byte[].class);

3. 转发请求后的结果中添加内容(业务需求)

之前使用Object接收的话
Map<String, Object> resultMap = BeanUtil.beanToMap(responseEntity.getBody(), false, false);
如果使用byte[], 需要涉及到字节数组转对象, 其实需要字节转字符串, 再转对象即可
参考: java中字节数组与对象之间的转换
Map<Object, Object> resultMap = JSONUtil.toBean(new String(responseEntity.getBody()), Map.class);

posted @   Codorld  阅读(100)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示
目录导航
restTemplate 使用问题小记
1. 文件上传
2. 文件预览和下载
3. 转发请求后的结果中添加内容(业务需求)