springboot使用http发起远程服务调用,请求参数包含StandardMultipartHttpServletRequest

在x86机器上运行jailhouse jailhouse jaihouse提供了一个demo ,https://github.com/siemens/jailhouse-images可以用于编译一整套可用的demo。 适用于多个平台。编译过程主要参考https://blog.youkuaiyun.com/weixin_39541632/article/details/110422345 此demo可以生成多个平台所用的操作系统image。 ... 阅读详情

背景

项目一般的远程服务调用使用feign,由于feign调用对于StandardMultipartHttpServletRequest支持不是很友好,所以需要将其改造为rest或者是http,相比与rest,http更为友好。

服务提供方

    @PostMapping("/updateInfo")
    @NonNull
    public TransResult updateInfo(@RequestParam("Id") String Id,
                                         @RequestParam("info") String info, String language,
                                          StandardMultipartHttpServletRequest request) {
	//.................
	
}

服务调用方

@RequestMapping("updateInfo")
    public GlobalResponse updateInfo(@RequestParam("Id") String Id,@RequestParam("info") String info,@RequestParam("file") MultipartFile file) throws IOException {

        //定义post请求
        HttpPost post = new HttpPost(path + "/xxx/api/updateInfo");
        CloseableHttpClient httpClient = HttpClients.createDefault();
        CloseableHttpResponse response = null;
        RequestConfig config = RequestConfig.custom().setConnectTimeout(30000).setSocketTimeout(30000).build();
        String result = "";
        //构建请求
        MultipartEntityBuilder builder = MultipartEntityBuilder.create();
        builder.setMode(HttpMultipartMode.RFC6532);
        builder.setContentType(ContentType.MULTIPART_FORM_DATA);
        if (file != null) {
            builder.addBinaryBody("file",new FileInputStream(multipartFileToFile(file)),ContentType.DEFAULT_BINARY,file.getOriginalFilename());
        }
        builder.addTextBody("Id", Id,ContentType.create(HTTP.PLAIN_TEXT_TYPE,HTTP.UTF_8));
        builder.addTextBody("info",info, ContentType.create(HTTP.PLAIN_TEXT_TYPE,HTTP.UTF_8));
        builder.addTextBody("language","zh", ContentType.create(HTTP.PLAIN_TEXT_TYPE,HTTP.UTF_8));
        post.setConfig(config);
        post.setEntity(builder.build());
        //执行请求
        response = httpClient.execute(post);
        HttpEntity entity = response.getEntity();
        result = httpEntityToString(entity);
        JSONObject json = JSON.parseObject(result);
        JSONObject data =  JSON.parseObject(json.getString("data"));
        return GlobalResponse.success(data);
    }

完美解决调用问题。

二、Windows安装Docker到非C盘的全新教程(Windows版) Windows安装Docker到非C盘的全新教程(Windows版) 阅读详情

相关推荐

unity pc运行包导入glb

本文介绍了在Unity中实现GLB/GLTF模型动态导入的方法。主要使用glTFast插件进行模型导入,配合StandaloneFileBrowser实现文件选择功能。文章提供了详细的插件安装方式(包括国内镜像源),并给出了核心导入脚本代码。脚本实现了模型加载、父对象设置、材质修复等功能,解决了常见的材质显示异常问题。该方法支持编辑器和PC平台,兼容不同版本的glTFastAPI,通过简易UI操作即可完成模型导入,适合需要运行时加载3D模型的Unity项目开发。

懒懒的蓝的博客 543

StandardMultipartHttpServletRequest上传文件

@PostMapping("upload") public void upload(HttpServletRequest request, HttpServletResponse response){ StandardMultipartHttpServletRequest httpServletRequest = (StandardMultipartHttpServletRequest)...

//Case 1万+

MediaCodec视频解码流程详解及参考demo

本文主要讲解mediacodec的视频解码流程,及demo参考例子。

分享音视频技术 7872

上传文件报错分析 StandardMultipartHttpServletRequest

controller /** * MultipartFile 自动封装上传过来的文件 * @param email * @param username * @param headerImg * @param photos * @return */ @PostMapping("/upload") public String upload(@RequestParam("email") String email, @RequestParam("usernam

qq_40813329的博客 2668

【YOLO11改进 - 注意力机制】SCSA通过结合空间注意力和通道注意力,提高各种下游视觉任务的性能。

【YOLO11改进 - 注意力机制】SCSA通过结合空间注意力和通道注意力,提高各种下游视觉任务的性能。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 473

C#从入门到精通(35)—如何防止winform程序因为误操作被关闭

我们在开发的上位机软件运行起来以后,一般在右上角都有一个关闭按钮,正常情况下点击关闭按钮就能关闭软件,但是不排除我们不想关闭软件,但是因为不小心把鼠标点到了关闭按钮,如果这是一个正在生产的机器,突然关闭软件可能会导致产品损坏,那么我们如何去解决这个误操作的问题呢,本文就来讲解解决方案!

qq_34059233的博客 676

彻底弄懂Java中的MultipartFile接口和File类

不管是在项目中还是日常需求,我们总是有操作文件数据的需求,Java中操作文件不可避免就要使用File类,而Spring中为我们提供了一个操作文件的接口,通过该接口我们可以获取用户上传的文件对象并写入文件系统中。这篇文章主要围绕MultipartFile接口和File类中相关方法的功能进行梳理,其中有关文件写入File对象和Path对象重点进行了剖析,希望能帮助到有需要的小伙伴~~~

荔枝当大佬的博客 1万+

SerDes学习笔记:DFE均衡架构示例(USB3.1、PCIe3.0\4.0)

本文探讨了DFE均衡器架构在不同数据接口中的应用特性。研究表明,抽头数量随数据速率提升而增加,1-16抽头架构较为常见。通过PCIeGen3/4实例分析,对比了单抽头、双抽头和15抽头DFE的性能差异,证明多抽头结构能通过精细调节有效提升噪声容限和降低误码率。文章详细阐述了DFE工作原理,包括其通过反馈信号对输入信号的补偿机制,以及不同抽头对消除码间干扰的作用。实验采用8Gbps速率(125ps/UI)进行波形仿真,直观展示了均衡处理前后的信号变化,为理解信道均衡技术提供了重要参考。

一只豌豆象的博客 517

org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile

前言 今天在使用springboot写文件上传到服务器的功能的时候,在本地(windows系统)可以运行成功,但是将代码上传到服务器(Linux系统)的时候就会报这个错误,上传的文件不能写到服务器中,并且会在服务器上创建一个空的文件夹,现在记录一下自己的解决办法 解决办法 首先先在config文件夹中加入一个配置类 package com.homyit.kg.config; import org.springframework.context.annotation.Configuration; impo

Mental-Flow的博客 1万+

RandLA-Net Tensorrt 推理 c++

RandLA-Net 实现 Tensorrt 部署.

J。 1108

安卓手机强制清理数据恢复出厂设置后无法设置密码怎么办?(分享亲身经历的有效解决方案)

📱安卓手机强制清数据恢复出厂设置后,竟无法设置锁屏密码!本文将解析问题根源,分享亲测有效的解决方案,帮你快速摆脱困扰🎉

XiaoqiangClub的博客 240

八. springmvc之MultipartResolver

springmvc之MultipartResolver 一. 概述 上传文件的组件,主要分为以下两种方式: StandardServletMultipartResolver和CommonsMultipartResolver,前者采用Servlet3.0标准的上传方式,后者则使用了Apache的commons-fileupload 二. 源码分析 2.1 MultipartResolver boolean isMultipart(HttpServletRequest request); MultipartH

Haonan的博客 1354

OpenCV实现文档扫描OCR识别(基于Python + OpenCV,含完整代码)

在当今数字化时代,文档处理的自动化需求日益增长。文档扫描OCR(Optical Character Recognition,光学字符识别)技术成为了将纸质文档转换为可编辑电子文本的关键手段。通过Python与OpenCV库的结合,我们能够实现高效、准确的文档扫描OCR识别。这一技术在办公自动化、数字图书馆、档案管理等众多领域都有着广泛的应用。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2030

SpringBoot16-文件上传01

注解作用范围典型用途能不能接文件表单字段(包括 multipart)普通字段、文件上传✅ 可以整个请求体(JSON/XML)JSON 数据❌ 不可以表单整体绑定成Java 对象表单对象封装✅ 可以(包含文件字段)

qq_31532983的博客 1068

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

StandardMultipartHttpServletRequest$StandardMultipartFile cannot be cast to org.springframework.web

错误: java.lang.ClassCastException: org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile cannot be cast to org.springframework.web.multipart.commons.Commo...

CoderHyq的博客 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

修改HttpServletRequest中header中的信息

废话一堆:由于业务有统一的鉴权系统,页面请求时在header中带过来gsid,正常业务没有问题,但是当需要下载文件时,前端统一用json解析响应,当响应文件时,对于前端来说不好处理,就决定使用简单的get请求下载文件,将gsid通过url带过来,这样的话后端鉴权就需要处理,当header中没有gsid时,从参数中取,为了尽可能少的改变公用的业务代码(指sso),就在当前项目中自定义权限拦截器。 ...

With_Her的博客 2869

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Spring MVC 源码之MultipartResolver 组件

继承 AbstractMultipartHttpServletRequest 抽象类,基于 Servlet 3.0 的 Multipart HttpServletRequest 实现类,包含了一个。本文对 Spring MVC 处理请求的过程中使用到的 MultipartResolver 组件进行了分析,如果请求的。对象,也就是我们常用到的 MultipartFile 对象,支持对文件的操作,内部其实都是调用。集合,如果是一个简单的表单字段,那么就是一个普通的参数,将参数名和值保存起来。

Coder_Boy_的博客 1550

SpringMvc框架(文件上传方式)

目录,更新ing,学习Java的点滴记录   目录放在这里太长了,附目录链接大家可以自由选择查看--------Java学习目录 SpringMvc知识 第一篇---->SpringMvc初识|MVC|三层架构 第二篇---->IoC容器上下文和映射请求上下文 第三篇---->熟悉基本开发流程 第四篇---->接收各类请求参数的方式 第五篇---->获取请求中的Request,Session,Cookie等对象属性 第六篇---->拦截器开发 第七篇---->视图和

qq_41649001的博客 851

什么年代了,你还不知道 Servlet3.0 中的文件上传方式?

.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rgba(51, 51, 51, 1) } .markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .ma...

程序员小明1024 388

SpringBoot上传文件报错,使用MultipartHttpServletRequest

项目从springMVC升级到springBoot之后,原来上传文件的功能用不了了,抛了一个MethodArgumentConversionNotSupportedException异常: org.springframework.web.method.annotation.MethodArgumentConversionNotSupportedException: Failed to conver...

qq_34244479的博客 9172

Spring MVC文件请求处理详解:MultipartResolver

是Spring-Web针对实现的多文件上传解决策略。

sinat_40572875的博客 2298

关于spring boot request转成MultipartHttpServletRequest 失败

在你的项目中添加一个配置类 注册CommonsMultipartResolver 解决request转成 MultipartHttpServletRequest@Bean(name = "multipartResolver") public MultipartResolver multipartResolver(){ CommonsMultipartResolver resolver = new...

qq_20962817的博客 5852

springboot多文件跨域上传

1.maven依赖 <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>1.3.2</version>

qq_37996327的博客 7690

解决HttpServletRequest 流数据不可重复读

https://www.cnblogs.com/Sinte-Beuve/p/13260249.html 前言 在某些业务中可能会需要多次读取 HTTP 请求中的参数,比如说前置的 API 签名校验。这个时候我们可能会在拦截器或者过滤器中实现这个逻辑,但是尝试之后就会发现,如果在拦截器中通过getInputStream()读取过参数后,在 Controller 中就无法重复读取了,会抛出以下几种异常: HttpMessageNotReadableException: Required reques..

thulium_kyg的博客 1974

SpringMVC文件上传功能实现

SpringMVC文件上传功能实现,SpringBoot文件上传,MultipartFile使用,以及MultipartHttpServletRequest获取上传文件内容。SpringBoot配置上传文件大小。

qq_43600166的博客 4722

springboot注入request,上传文件request无法转换成MultipartHttpServletRequest

springboot项目request注入以后,百度富文本上传文件失败,发现request不能转换成MultipartHttpServletRequest,request作为参数就行了,与application.properties配置multipart.enabled=true无关,与没有common-io.jar也无关,与配置CommonsMultipartResolver无关 @Req...

cgf_01的博客 1739
上一篇: 我的创作纪念日
下一篇: 基于InsCode实现一个自己的chatgpt
CodersCoder
博客等级 码龄10年 90粉丝 258原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值