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);
    }
}

 

目录
相关文章
|
存储 设计模式 负载均衡
一文读懂Spring动态配置多数据源---源码详细分析(下)
一文读懂Spring动态配置多数据源---源码详细分析
2770 0
一文读懂Spring动态配置多数据源---源码详细分析(下)
|
自然语言处理 算法 数据处理
持续进化,快速转录,Faster-Whisper对视频进行双语字幕转录实践(Python3.10)
Faster-Whisper是Whisper开源后的第三方进化版本,它对原始的 Whisper 模型结构进行了改进和优化。这包括减少模型的层数、减少参数量、简化模型结构等,从而减少了计算量和内存消耗,提高了推理速度,与此同时,Faster-Whisper也改进了推理算法、优化计算过程、减少冗余计算等,用以提高模型的运行效率。 本次我们利用Faster-Whisper对日语视频进行双语(日语/国语)转录实践,看看效率如何。
持续进化,快速转录,Faster-Whisper对视频进行双语字幕转录实践(Python3.10)
|
NoSQL Java 关系型数据库
【Redis系列笔记】分布式锁
分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁,只要大家使用的是同一把锁,那么我们就能锁住线程,不让线程进行,让程序串行执行,这就是分布式锁的核心思路
1488 2
SpringCloud Feign报错Method has too many Body parameters
SpringCloud Feign报错Method has too many Body parameters
|
12月前
|
安全 应用服务中间件 API
Ascend+FastAPI+ Uvicorn 实现推理
FastAPI 是一个高性能的 Python Web 框架,专为构建 RESTful API 设计,支持异步编程和数据验证。Uvicorn 是基于 ASGI 的轻量级异步服务器,与 FastAPI 结合使用可提供高效、高并发的服务。在生产环境中,二者配合 Nginx 可实现稳定安全的部署。示例代码展示了如何通过 FastAPI 和 Uvicorn 启动服务,并在 Ascend 平台上运行推理模型,处理自然语言任务。 简介字数:239
|
消息中间件 Kafka
Kafka生产者和消费者相关命令行操作
Kafka生产者和消费者相关命令行操作
453 1
|
XML JSON Java
通过 Feign 进行文件上传
通过 Feign 进行文件上传
894 7
|
计算机视觉 Python
10个使用NumPy就可以进行的图像处理步骤
这篇文章介绍了使用NumPy进行图像处理的10个基本步骤,包括读取图像、缩小图像、水平和垂直翻转、旋转、裁剪、分离RGB通道、应用滤镜(如棕褐色调)、灰度化、像素化、二值化以及图像融合。通过这些简单的操作,读者可以更好地掌握NumPy在图像处理中的应用。示例代码展示了如何实现这些效果,并配有图像结果。文章强调这些方法适合初学者,更复杂的图像处理可使用专门的库如OpenCV或Pillow。
452 5
|
消息中间件 Java 测试技术
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
1305 1
|
缓存 算法 NoSQL
短信验证码登录接口,如何防止恶意攻击
该文讨论了移动应用中常见的手机短信验证码登录(短验登录)的安全设计。后端通常需要提供获取短信验证码和手机短验登录两个API。为了增强机短验登录API的安全性,提出了几种无需依赖Redis等存储介质的方案:1)使用数字签名确保请求合法性;2)基于时间戳的验证,允许在一定时间范围内有效;3)应用TOTP算法生成动态码进行验证;4)利用JWTToken进行身份验证并设置有效期。文章强调了创新思考在解决安全问题中的重要性,并鼓励读者分享更多方案。
1181 1