如何使用RestTemplate上传文件呢?
下文笔者讲述RestTemplate上传文件的方法分享,如下所示
上传文件(upload File)的简介
上传文件是我们日常业务开发中常见的需求 那么如何使用resttemplate实现文件上传操作呢? 下文笔者将一一道来,如下所示
RestTemplate上传文件的实现思路
1.定义一个 MultiValueMap
2.将文件流封装为InputStreamResource对象
3.将 InputStreamResource 对象放入MultiValueMap中
4.将 MultiValueMap 封装到 httpEntity中
5.使用restTemplate发送post请求
例:RestTemplate使用配置
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate() {
RestTemplateBuilder builder = new RestTemplateBuilder();
return builder.build();
}
}
//获取文件流,同时使用restTemplate发送请求
InputStream fileInputStream = *****;
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
Long fileSize = ossObject.getObjectMetadata().getContentLength();
InputStreamResource resource = new InputStreamResource(fileInputStream) {
@Override
public String getFilename() {
return file.getName();
}
@Override
public long contentLength() {
return fileSize;
}
};
body.add("FileContent", resource);
HttpEntity<Object> httpEntity = new HttpEntity<>(body, headers);
registerRes = restTemplate.postForEntity("oos接口url", httpEntity, "接受类Class").getBody();
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


