如何使用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();
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。