Feign解决服务之间传递文件、传递list,map、对象( 三 )

materials,@Param(value = "http://kandian.youth.cn/index/user") User user,@Param(value = "http://kandian.youth.cn/index/files") MultipartFile[] files);要使用 Feign 自带的注解 , @RequesLine 和 @Param 来做请求参数的注入 ,
我测试的时候 , 使用 如下这些参数 , 都可以完成传递、
/*** 示例代码:feign请求测试* @return*/public String test01(){try {String name = "中文";String nametwo = "two";MultipartFile file = fileToMultipartFile(new File("E:\\临时\\1.xlsx"));MultipartFile file2 = fileToMultipartFile(new File("E:\\临时\\2.xlsx"));Map advertiserMap = new HashMap<>();User user = new User();user.setXm("张三");User user1 = new User();user1.setXm("张四");advertiserMap.put("zw", user);advertiserMap.put("中", user1);List list = new ArrayList<>();list.add(user);list.add(user1);MultipartFile[] files = new MultipartFile[2];files[0] = file;files[1] = file2;ResultJson resultJson = resourceAdminFeignImp.test01(name, nametwo, file, advertiserMap, list, user, files);if (ResultEnum.SUCCESS.getStatus().equals(resultJson.getStatus())){log.info("测试结果:{}", resultJson.getData());return (String) resultJson.getData();} else {log.error("测试失败 , 失败原因 , {}", resultJson.getMsg());return null;}} catch (Exception e) {e.printStackTrace();log.error("服务不可用或服务调用失败 , 上传数据失败");return null;}}接收端同样要注意 , 要使用@RequestPart 来接收参数 。
/*** 演示用demo , 用来测试这些类型是不是都可以接收* @param name 普通参数* @param file 普通文件* @param advertiserMap 普通map对象* @param materials 普通list对象* @param user 对象* @param files 多文件* @return*/@ResponseBody@PostMapping("/test01")public ResultJson test01(@RequestPart(value = "http://kandian.youth.cn/index/name", required = false) String name,@RequestPart(value = "http://kandian.youth.cn/index/nametwo", required = false) String nametwo,@RequestPart(value = "http://kandian.youth.cn/index/file", required = false) MultipartFile file,@RequestPart(value = "http://kandian.youth.cn/index/advertiserMap", required = false) Map advertiserMap,@RequestPart(value = "http://kandian.youth.cn/index/materials", required = false) List materials,@RequestPart(value = "http://kandian.youth.cn/index/user", required = false) User user,@RequestPart(value = "http://kandian.youth.cn/index/files", required = false) MultipartFile[] files){log.info("name:{}", name);log.info("nametwo:{}", nametwo);log.info("文件名:{},文件大小:{},文件名:{}", file.getOriginalFilename(), file.getSize(), file.getName());log.info("map对象大小:{}", advertiserMap.size());log.info("list对象大小:{}", materials.size());log.info("用户:{}", user.toString());log.info("文件名:{},文件大小:{},文件名:{}", files[0].getOriginalFilename(), files[0].getSize(), files[0].getName());return new ResultJson("查询成功", null);}注意 , 基础的数据类型 , String 之类的可以不用写注解也可以接收 。
原文链接:
如果觉得本文对你有帮助 , 可以转发关注支持一下