首页 > 其他分享 >Spring中如何使用RestTemplate将MultipartFile类型数据发送给被调用方

Spring中如何使用RestTemplate将MultipartFile类型数据发送给被调用方

时间:2023-06-07 09:45:33浏览次数:32  
标签:map Spring RestTemplate certificateUpload file certificateType MultipartFile

被调用方代码

    @PostMapping("/certificateUpload")
    public Result<?> certificateUpload(@RequestPart("file") MultipartFile file,
                                       @RequestParam String certificateType) {
        return certificateService.certificateUpload(file, certificateType);
    }

调用方代码

    public Result<?> certificateUpload(MultipartFile file, String certificateType) {
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.MULTIPART_FORM_DATA);
        MultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
        try {
            map.add("file",file.getResource());
            map.add("certificateType",certificateType);
            HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(map, headers);
            ResponseEntity<Result> response = restTemplate.exchange(certificateUploadUrl, HttpMethod.POST, requestEntity, Result.class);
            return response.getBody();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return Result.ok("上传失败");
    }

注意:百度有的例子是获取到MultipartFile的InputStream流包装在InputStreamResource中放在map里。

实际上使用时被调用方会报错 Required request part 'file' is not present 。接收不到传过去的file

发现点进getResource()源码看注释就已经写的很清楚了

Return a Resource representation of this MultipartFile.This can be used as input to the RestTemplate or the WebClient to expose content length and the filename along with the InputStream.
Returns:this MultipartFile adapted to the Resource contract
Since:5.1

标红部分说明可以用于RestTemplate或WebClient

标签:map,Spring,RestTemplate,certificateUpload,file,certificateType,MultipartFile
From: https://www.cnblogs.com/qzzzz/p/17462481.html

相关文章

  • 三天吃透Spring面试八股文
    摘自我的面试网站:topjavaer.cnSpring是什么?Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。最全面的Java面试网站:最全面的Java面试网站Spring的优点通过控制反转和依赖注入实现松耦合。支持面向切面的编程,并且把应用业务逻辑和系统服务分开。通过切面和模......
  • spring boot 集成 Neo4j org.neo4j.ogm.metadata.DomainInfo.useClassgraph(DomainIn
    springboot版本:2.2.13.RELEASE 问题在于引入后,报错spring-boot-starter-data-neo4j<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-neo4j</artifactId></dependency>  *......
  • 基于JAVA的springboot+vue人事管理系统、员工工资管理系统,附源码+数据库+论文+PPT
    1、项目介绍考虑到实际生活中在人事管理方面的需要以及对该系统认真的分析,将系统权限按管理员和员工这两类涉及用户划分。(a)管理员;管理员使用本系统涉到的功能主要有:首页,个人中心,员工管理,部门管理,员工考勤管理,请假申请管理,加班申请管理,员工工资管理,招聘计划管理,员工培训管理,部......
  • Spring 学习笔记(10)—— 视图和视图解析器
    1认识视图2认识视图解析器3使用JSP和JSTL4模板视图FreeMarkerFreeMarker仅负责基于模板对模型数据进行渲染的工作在SpringWeb上下文中配置FreeMarker......
  • Spring 学习笔记(7)—— 使用外部属性文件
    1使用PropertyPlaceholderConfigurer属性文件驱动器类名,JDBC的URL地址及数据库用户名/密码都直接写在XML文件中,部署应用的时候,必须先找出这个Bean部署XML文件,再找出数据源Bean定义的代码段进行调整,很麻烦。在实际应用中,应该将这些配置信息抽取到一个配置文件中。2使......
  • Spring 学习笔记(8)—— SpringMVC 简介、DispatcherServlet 配置
    一、SpirngMVC简介SpringMVC通过一套MVC注解,让POJO成为处理请求的控制器,无需实现任何接口。在数据绑定、视图解析、本地化处理及静态资源处理上都有不俗的表现。SpringMVC处理请求的整体过程:二、配置DispatcherServlet1配置DispatcherServlet,截获特定的URL请求显式......
  • Spring 学习笔记(6)—— 基于注解的配置
    1使用注解定义Bean2扫描注解定义的Bean3自动装配Bean使用@Autowired进行自动注入使用@Qualifier指定注入Bean的名称......
  • Spring 学习笔记(4)—— Bean 的基本配置、依赖注入(DI)、注入参数引用其他Bean
    一、Bean的基本配置1装配一个Bean在Spring容器的配置文件中定义一个简要Bean的配置片段2Bean的命名二、依赖注入1属性注入属性注入要求Bean提供一个默认的构造函数,并为需要注入的属性提供对应的Setter方法。2构造函数注入按索引匹配入参三、注入参数引用其他Bean......
  • Spring 学习笔记(5)—— 简化xml配置文件的配置方式
    1字面值属性2引用对象属性3使用p命名空间......
  • Spring 学习笔记(3)—— Spirng 配置概述
    Spring容器高层视图Spring启动时读取应用程序提供的Bean配置信息(XML配置文件),并在Spring容器(ApplicationContext)中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配好Bean之间的依赖关系,为上层因公提供准备就绪的运行环境。Bean元数据信息在Spring容器......