OpenFeign FormData

简介: OpenFeign FormData

服务端接口代码如下:

/**
 * 上传数据+实体信息
*/
@RequestMapping("/upload")
public String doctorAnalysis(HttpServletRequest request, @RequestParam(value = "userinfo") String param,  @RequestParam(value = "file") MultipartFile file) {
    logger.info("userinfo json => {}", param);
    logger.info("上传成功{}", file.getOriginalFilename());
    File saveFile = new File("D:\\"+file.getOriginalFilename());
    if (!saveFile.exists()) {
        saveFile.mkdirs();
    }
    try {
        file.transferTo(saveFile);
    } catch (IOException e) {
        logger.error(e.getMessage(), e);
        e.printStackTrace();
    }
    return "上传成功";
}

 

PostMan 如下

 

OpenFeign

@FeignClient(name = "vipsoft", url = "${api.url}")
public interface ICallbackFeignService {
    /**
     * 上传文件
     *
     * 注意: 使用openfeign传递参数含有文件类型时必须指定 consumes = MediaType.MULTIPART_FORM_DATA_VALUE
     * 
     * @param param  需要将对象转成JSON,如果直接传对象出去,将会变成 Key Value的形式
     * @return
     */
    @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    String upload(@RequestPart("result") String param, @RequestPart("file") MultipartFile file);
}
package com.vipsoft.web;
import com.vipsoft.web.rpc.ICallbackFeignService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileInputStream;
@SpringBootTest
public class AppCallbackTest {
    @Autowired
    ICallbackFeignService appCallbackFeignService;
    @Test
    void Upload() throws Exception {
        File file = new File("D:\\Users\\Desktop\\fanye.mp4");
        //这里的第一个参数值 file 是对应上面feign的文件注解中的@RequestPar中的name。一定要对应上
        MultipartFile multipartFile = new MockMultipartFile("file", file.getName(), "application/octet-stream;charset=utf-8", new FileInputStream(file));
        UserInfo param = new UserInfo();
        param.setUserName("张三"); 
        param.setAge(40); 
        appCallbackFeignService.upload(multipartFile);
    }
}

 

目录
相关文章
|
Java Spring 数据格式
使用Feign实现Form表单提交
原文:http://www.itmuch.com/spring-cloud-sum/feign-form-params/ 之前,笔者写了《使用Spring Cloud Feign上传文件》。
4723 0
|
7月前
|
人工智能 搜索推荐 UED
Geo优化:Schema.org的“写作”规范与E-E-A-T的“信任”技巧
本文将把重点放在Schema.org的‘写作’规范与技巧上,因为Schema.org的部署,本质上就是一场用机器语言向AI讲述你内容价值的写作。
340 3
|
消息中间件 JSON Java
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
36356 1
|
JSON 数据格式
@SpringQueryMap 、@RequestPart 、@RequestParam 比较与说明
@SpringQueryMap 、@RequestPart 、@RequestParam 比较与说明
2241 2
|
存储 算法 Java
java制作海报六:Graphics2D的RenderingHints方法参数详解,包括解决文字不清晰,抗锯齿问题
这篇文章是关于如何在Java中使用Graphics2D的RenderingHints方法来提高海报制作的图像质量和文字清晰度,包括抗锯齿和解决文字不清晰问题的技术详解。
816 0
java制作海报六:Graphics2D的RenderingHints方法参数详解,包括解决文字不清晰,抗锯齿问题
|
安全 Java 程序员
【HTTP】认识 URL 和 URL encode
【HTTP】认识 URL 和 URL encode
524 0
|
XML JSON Java
通过 Feign 进行文件上传
通过 Feign 进行文件上传
1367 7
SpringCloud Feign报错Method has too many Body parameters
SpringCloud Feign报错Method has too many Body parameters
|
安全 关系型数据库 MySQL
MySQL8 中文参考(二十六)(1)
MySQL8 中文参考(二十六)
333 1

热门文章

最新文章