RestTemplate 调用 MultipartFile

HttpClient调用接口,参数类型为文件;RestTemplate 调用接口。 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.ByteArrayResource; import org.springframework.core.io.FileSystemResource; import org.springframework. 阅读详情
package com.wind.service;

import com.wind.entity.CommonDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.LinkedHashMap;

/**
 * @Author
 * @Classname UploadService
 * @Description 调用第三方获取可访问的url
 *         注意点的:1. contentType   multipart/form-data
 *                 2. 用原生的或者spring的 RestTemplate
 *                 3. MultipartFile 不可以序列化 (可能会包json 解析异常)
 * @Date 2021/3/11 22:32
 * @Created by windBird
 */
@Service
public class UploadService {

    @Autowired
    private RestTemplate restTemplate;

    @Value("{$third.item.url}")
    private String baseUrl;


    /**
     * 文件流 + 注入 RestTemplate +multipart/form-data
     * @param image
     * @return
     * @Description 调用第三方 获取可访问的 URL 第三方接受的参数类型  MultipartFile
     */
    public String getImageUrl(MultipartFile image) {
        String openImageUrl = "";
        LinkedMultiValueMap param = new LinkedMultiValueMap<>();
        param.add("file", image.getResource());
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.setContentType(MediaType.parseMediaType("multipart/form-data"));
        HttpEntity upParam = new HttpEntity<>(param, httpHeaders);
        String url = baseUrl + "/uploadImage";
        CommonDto resultData = restTemplate.postForEntity(url, upParam, CommonDto.class).getBody();
        if (null != resultData) {
            LinkedHashMap<String, Object> linkedHashMap = (LinkedHashMap<String, Object>) resultData.getData();
            openImageUrl = String.valueOf(linkedHashMap.get("fileUrl"));
        }
        return openImageUrl;
    }

    /**
     *  数组流+ new RestTemplate + multipart/form-data
     * @param image
     * @return
     * @throws IOException
     */
    public String getUrlByArrayByte(MultipartFile image) throws IOException {
        String openImageUrl = "";
        ByteArrayResource arrayResource = new ByteArrayResource(image.getBytes()) {
            @Override
            public String getFilename() {
                return image.getOriginalFilename();  //必须要重写路径
            }
        };
        LinkedMultiValueMap param = new LinkedMultiValueMap<>();
        param.add("file", arrayResource);
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.setContentType(MediaType.parseMediaType("multipart/form-data"));
        HttpEntity upParam = new HttpEntity<>(param, httpHeaders);
        RestTemplate restTemplate = new RestTemplate(new HttpComponentsClientHttpRequestFactory());
        String url = baseUrl + "/uploadImage";
        CommonDto resultData = restTemplate.postForEntity(url, upParam, CommonDto.class).getBody();
        if (null != resultData) {
            LinkedHashMap<String, Object> linkedHashMap = (LinkedHashMap<String, Object>) resultData.getData();
            openImageUrl = String.valueOf(linkedHashMap.get("fileUrl"));
        }
        return openImageUrl;
    }
}

Windows Pychram部署Unet++过程 windows系统 在pycharm平台上配置并跑通Unet网络 这里我用的是B站课程里的资源《唐宇迪Unet图像分割语义分割实战》 阅读详情

相关推荐

方差迭代计算公式

方差迭代计算过程推导术语约定递推公式过程推导 术语约定 (1)En=1n∑i=1nxi E_n =\frac{1}{n} \sum_{i=1}^{n}x_i \tag{1} En​=n1​i=1∑n​xi​(1) (2)F(n)=∑i=1n(x2−En) F(n) = \sum_{i=1}^{n}{(x^2-E_n)} \tag{2} F(n)=i=1∑n​(x2−En​)(2) (3)V(n)...

weixin_44479136的博客 7921

RestTemplate发送MultipartFile

RestTemplate发送MultipartFileRestTemplate转发MultipartFile到另外一个接口转发端代码接收端 RestTemplate转发MultipartFile到另外一个接口 使用 RestTemplate 发送 MultipartFile 文件,这其实是个坑来的,MultipartFile 是 Spring 中的一个接口,主要用来接收请求中带有的文件形式。 当我们使用 RestTemplate 来传这个时,程序就报IO流异常。如果是保存完了再转发MultipartFil

qq_38303916的博客 6202

h5页面调用微信JS-SDK分享到微信好友或者朋友圈的配置

1.引入js &lt;script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"&gt;&lt;/script&gt; 2.在页面添加配置 &lt;script type="text/javascript"&gt; var url = location.href..

tiantiandashi的博客 2万+

【SpringBoot】使用RestTemplate在服务之间进行MultipartFile格式文件的传递

文章目录1、前言2、原因分析3、解决办法 1、前言 最近开发过程中遇到这样的问题,在使用RestTemplate进行两个后台服务之间文件传递的时候,直接使用MultipartFile格式来传递的时候抛出异常。 2、原因分析 MultipartFile是Spring框架中提供的一种用于文件处理的接口,一般用于前端进行文件的上传,后端使用MultipartFile类型来进行文件的接收;当使用RestTemplate的post方法进行来传递接收到的MultipartFile类型文件时,由于RestTemplate

qgnczmnmn的博客 8463

如何入门强化学习

很多同学在入门强化学习的时候都会遇到困难,那我这里就简单介绍一下应该如何入门强化学习,并以开源代码为例详解强化学习实战。

seeksister的博客 3304

Mac M系列芯片用户必看:UTM虚拟机跑麒麟V10安装达梦DM8全流程避坑指南

本文为Mac M系列芯片用户提供了一份详尽的UTM虚拟机安装麒麟V10并部署达梦数据库DM8的实战指南。文章深入分析了在ARM架构下选择UTM而非其他虚拟化方案的原因,并详细拆解了从系统安装、SPICE工具配置、麒麟V10深度调优到DM8安装与避坑的全流程,重点解决了ARM环境下的兼容性与配置难题,帮助开发者高效搭建国产化开发测试环境。

ss78901的博客 940

通过RestTemplate调用参数为MultipartFile的接口上传文件 + 踩坑

通过RestTemplate调用参数为MultipartFile的接口上传文件 + 踩坑

qq123456789_的博客 4761

企业微信群机器人Webhook配置全攻略:从创建到发送消息的完整流程

本文详细解析了企业微信群机器人的Webhook配置全流程,从创建机器人、获取关键Webhook地址,到使用代码发送文本、Markdown等多种消息类型。内容涵盖安全加固、错误处理及与CI/CD等系统集成的实战指南,帮助企业快速构建高效、稳定的内部通知系统。

ik678901的博客 1789

RestTemplate直接发送内存文件对象multipart

然后,构建一个由字节数组和其他信息(如原始文件名和媒体类型)组成的资源对象,用于作为 HTTP 请求的一部分。

沐霜枫叶 2566

微信小程序marker 上的自定义气泡cover-view字体丢失以及max-width不生效问题

微信小程序marker 上的自定义气泡cover-view字体丢失以及max-width不生效问题

weixin_42028275的博客 1502

1、 快速掌握R:初学者的计量经济学指南

本博文旨在为初学者提供一个快速掌握R语言的指南,特别是针对计量经济学领域的应用。内容涵盖了R的基本操作、数据管理、可视化、函数编写以及高级统计分析方法,如OLS回归、异方差修正和集群标准误差计算等。通过实际示例和详细说明,帮助读者在数据分析和科学研究中更加得心应手。

weixin_35734408的博客 151

restTemplatepost转发接口 参数是MultipartFile

restTemplate 文件上传

weixin_51291483的博客 1038

芒果YOLOv12改进90:检测头篇之ShareSepHead:即插即用|原创新颖共享Sep检测头,更省参数量,更高效,打造新型YOLOv8检测器,精度高效涨点

芒果YOLOv12改进90:检测头篇之ShareSepHead:即插即用|原创新颖共享Sep检测头,更省参数量,更高效,打造新型YOLOv8检测器,精度高效涨点

包括YOLOv5、YOLOv7、YOLOv8等模型改进 346

Java-- 使用RestTemplate调用带有MultiPartFile的接口总结

自己琢磨加找资料,花了不少时间,话不多说上代码 把File转成MultiPartFile的操作 添加参数并请求接口 解决问题后请点赞加评论,谢谢

qq_39148846的博客 2745

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Spirng restTemplate发送 MultipartFile 文件调用接口

public JSONObject upload(MultipartFile file){ try { log.info("上传图片证明材料"); HashMap<String, Object> map = new HashMap<>(); map.put("file",file); ByteArrayResource fileAsResource = new ByteArrayResource(file.get

weixin_44534767的博客 1455

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

使用RestTemplate上传MultipartFile文件给远程接口

参考于:https://blog.youkuaiyun.com/weixin_30357231/article/details/97925465 方法头: public AjaxJson fileUpload(@RequestPart(value = "file") MultipartFile file) throws Exception MultiValueMap request = new LinkedMultiValueMap(1); ByteArrayResourc

qq_32513795的博客 4259

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

RestTemplate转发MultipartFile

RestTemplate转发MultipartFile文件

qq_43600166的博客 2423

RestTemplate远程调用之传输文件

Spring RestTemplate远程调用之传输文件

yuanjinshenglife的专栏 3196

使用RestTemplate上传文件

写作目的 最近维护一个项目,里面用了RestTemplate进行服务之前的调用,不过最近有一个Excel解析的需求,百度了几篇,内容不是很全,所以写篇博客记录一下,不过我还是推荐使用Feign调用,毕竟面向接口编程,方便。 代码 亲测可用 @RestController public class DataExcelImportController { private static final String REST_URL_PRFIX = "http://abc"; @Aut

CBeann的博客 9594

使用RestTemplate调用上传文件且带参数的远程接口

根据对接的需要,需要请求一个使用 SSM 框架编写的文件上传的接口,该接口的请求方式为Post请求,请求参数全部是以 form-data 表单形式进行提交,包含多个参数,且方法中,文件是由 request 中获取到。

心猿码意 2912

restTemplate 上传大文件Java heap space

将已上传的文件,通过RestTemplate,发起HTTP请求调用接口。当文件较大时,出现Java heap space。

lqbz的总结 2206

restTemplate发送multipartFile和String混合参数及接收

【代码】restTemplate发送multipartFile和String混合参数及接收。

qq_42019139的博客 1239

文件上传遇到的问题

1 此上传操作要调用第三方接口,使用RestTemplet调用 2 前端传来的文件与要用MultipartFile接收 3 调用操作要传递请求报文,封装请求头和请求体 4 请求头的contenttype类型要和form表单enctype一致,为mulpart form data 5 请求体的参数不能用HashMap封装,要用MultiValueMap 5 MultipartFile和File类型都不能作为请求参数传递,要用FileSystemResource ...

qq_54922344的博客 428

spring boot 服务间传输Docker镜像,并加载镜像

springboot服务间接口调用很简单,但是关于调用接口上传文件经常走弯路,故此总结一下: 负责上传文件的服务A(): @RequestMapping(value="/loadToRepository", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public Object loadImageToRepository (@Req...

谦虚使人发胖的博客 1837

Java调用第三方http-文件发送接收4

【代码】Java调用第三方http-文件发送接收4。

mynameisjinxiaokai的博客 305

Springboot实现上传文件,并实现调用第三方接口post请求多文件上传文件

项目过程中,经常会有和第三方接口打交道的过程,今天实现调用第三方上传文件的接口!!通常拿到第三方的接口文档的时候,不是第一时间先写代码,而是详细阅读接口文档。若接口需要第三方提供的基本参数,例如signkey, secrect等,也可以是其他的,查看文档里是否提供。再用工具(postman、swagger)构建接口请求参数进行接口测试,测试成功后, 再开始写代码!!

syc_java的博客 8830
上一篇: Nginx rewrite 配置内部 转发
下一篇: Idea 注释更醒目
WindwardBird
博客等级 码龄7年 19粉丝 94原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值