当前位置:   article > 正文

实现微服务间restTemplate方式传递文件 MultipartFile file_服务间调用传递multipartfile

服务间调用传递multipartfile

请求端:

1. 封装参数

  1. MultiValueMap<String, Object> multiValueMap = new LinkedMultiValueMap<>();
  2. List<Resource> tmpResource = new ArrayList<>();
  3. Arrays.stream(multipartfiles).forEach(multipartFile -> {
  4. tmpResource.add(multipartFile.getResource());
  5. });
  6. multiValueMap.addAll("file", tmpResource);
  7. multiValueMap.add("req", fileUploadReq);

2.远程调用

  1. Resp result = BaseUtil.postForObject2(restTemplate, RestApi.UPLOAD_FILE, multiValueMap, Resp.class, MediaType.MULTIPART_FORM_DATA);
  2. if (null != result && result.getCode().equals(CODE.success.getCode())) {
  3. log.info("RestApi.UPLOAD_FILE=====" + result.getCode());
  4. }

远程调用中封装的postForObject2方法

  1. public static <T> T postForObject2(RestTemplate restTemplate, String url, Object obj, Class<T> respType, MediaType mediaType) {
  2. log.info("开始调用远程服务....");
  3. if (StringUtil.isNull(url)) {
  4. log.error("请求url不能为空");
  5. return null;
  6. }
  7. if (null == respType) {
  8. log.error("响应类型不能为空");
  9. return null;
  10. }
  11. log.info("请求地址:" + url);
  12. log.info("请求参数:" + (obj == null ? "" : obj.toString()));
  13. /**设置请求头*/
  14. HttpHeaders headers = new HttpHeaders();
  15. if (mediaType == null) {
  16. headers.setContentType(MediaType.APPLICATION_JSON);
  17. } else {
  18. headers.setContentType(mediaType);
  19. }
  20. /**设置请求体*/
  21. HttpEntity<Object> entity = new HttpEntity<>(obj, headers);
  22. /**请求*/
  23. T resp;
  24. try {
  25. resp = restTemplate.postForObject(url, entity, respType);
  26. log.info("响应结果:" + (resp == null ? null : resp.toString()));
  27. } catch (Exception e) {
  28. log.error("远程调用异常:" + e.toString());
  29. return null;
  30. }
  31. log.info("调用远程服务完成====");
  32. return resp;
  33. }

服务端:

  1. /**
  2. * 服务之间调用上传文件入口
  3. * @param file
  4. * @param req
  5. * @return
  6. * @throws Exception
  7. */
  8. @RequestMapping("uploadFileCommonForService")
  9. public FileUploadReq uploadFileCommonForService(@Valid List<MultipartFile> file, @RequestPart FileUploadReq req) throws Exception {
  10. return iFileUploadService.uploadFileCommon(file, req);
  11. }

另外一种方式 feigin方式传递文件:https://blog.csdn.net/buyaopingbixiazai/article/details/115537084

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/302894
推荐阅读
相关标签
  

闽ICP备14008679号