使用HttpClient4实现文件上传请求的发送,服务器端以MultipartFile形式接收(附依赖jar包地址)

SpringBoot2.1.x,okhttp3网络请求之MultipartFile方式上传文件,multipart/form-data表单多文件+多参数 一)引入okhttp3的jar <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>4.0.0</version> </dependency> 二)提供一个上传服务接口,文件类型为MultipartFile package com.oyse. 阅读详情

今天学习使用了HttpClient4.2向服务端发送上传文件的post请求,由于服务器端采用MultipartFile形式接收,查询资料后决定使用HttpClient4.2实现,以下是实现代码(仅作测试使用):

   public void testtaskPost()throws  Exception{
        HttpClient httpclient = new DefaultHttpClient();
        try {
            //新建一个httpclient Post 请求
            HttpPost httppost = new 
            HttpPost("http://127.0.0.1:8889/taskmanagement/task");
            //由于只是测试使用 这里的路径对应本地文件的物理路径
            FileBody bin = new FileBody(new File("E://2017//1.doc"));
            File myfile = new File("E://2017//1.doc");
            long size  = myfile.length();
            //向MultipartEntity添加必要的数据
            StringBody comment = new StringBody("1.doc", 
            Charset.forName("UTF-8"));
            MultipartEntity reqEntity = new MultipartEntity();
            reqEntity.addPart("file",bin);//file为请求后台的Fileupload参数
            reqEntity.addPart("filename",comment);//请求后台Fileupload的参数
            httppost.setEntity(reqEntity);
            //这里是后台接收文件的接口需要的参数,根据接口文档需要放在http请求的请求头
            String taskid ="919894d9-ea5a-4f6a-8edd-b14ef3b6f104";
            httppost.setHeader("task-id",taskid);
            String fileid = UUID.randomUUID().toString();
            httppost.setHeader("file-id",fileid);
            httppost.setHeader("file-name","1.doc");
            httppost.setHeader("file-size",String.valueOf(size));
            httppost.setHeader("total", String.valueOf(1));
            httppost.setHeader("index",String.valueOf(1));

            HttpResponse response = httpclient.execute(httppost);
            int statusCode = response.getStatusLine().getStatusCode();
            if(statusCode == HttpStatus.SC_OK){
                System.out.println("服务器正常响应.....");
                HttpEntity resEntity = response.getEntity();
                System.out.println(
                //httpclient自带的工具类读取返回数据
                EntityUtils.toString(resEntity));
                System.out.println( resEntity.getContent());
                EntityUtils.consume( resEntity);
            }
        } catch (ParseException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                httpclient.getConnectionManager().shutdown();
            } catch (Exception ignore) {
            }
        }
    }

此段代码所需依赖包下载地址(免积分的):http://download.youkuaiyun.com/detail/coding13/9772027

Okhttp实现上传文件+参数请求接口form-data 然后controller层的传参需要用@RequestParam或者直接一个请求的实体类,如果使用实体类,千万不要加@RequestBody,不然结合上传文件会失效,上传文件使用。有时候需要对接一些接口,而且接口传参不仅需要各种类型的参数,甚至还要上传文件,所以遇到挺多坑,用postman的生成代码也不好用,于是就有了这篇文章。@RequestPart("file") MultipartFile file进行传参。话不多说,我们直接上代码。首先是service层。 阅读详情

相关推荐

Http post 发送 multipart/form-data 格式数据-Java 实现

Http post 发送 multipart/form-data 格式数据-Java 实现代码参考博客 代码 package awesome.data.structure.http; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.*; import java.net.HttpURLConnect...

Andy's Blog 3万+

HttpClient发送MultipartFile多文件及多参数请求

HttpClient发送MultipartFile多文件及多参数请求

fraya1234的专栏 3414

养龙虾经验:OpenClaw用户必看的3个“省token”救命配置

本文分享了3个优化OpenClaw使用成本的配置方案:1)启用上下文压缩功能,可选择全局或单个代理设置,支持safeguard/adaptive两种压缩模式;2)修改SOUL.md提示词,要求模型回答简洁直接;3)限制对话历史长度。方案一效果最佳,可减少长对话的token消耗,但可能影响连贯性。三种方案可单独或组合使用,需根据实际场景调整参数。文章最后邀请读者分享使用痛点,将针对高频问题撰写解决方案。

wpplvhq的专栏 1417

multipartentitybuilder引入不了jar包

问题描述: multipartentitybuilder找不到jar包 解决方案: 手动导入这个jar包到配置文件里 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5</vers

yang13676084606的博客 6371

从零到一:微信小程序Camera组件实现高效连续扫码的实战解析

本文详细解析了如何利用微信小程序Camera组件实现高效连续扫码功能,适用于零售仓储、物流配送等场景。通过优化扫码核心机制、防抖处理和图像增强技术,开发者可以突破官方API限制,打造媲美专业扫码枪的流畅体验。文章还提供了性能基准测试和高级功能扩展方案,助力企业提升操作效率。

weixin_29015051的博客 579

RK3576处理器RT-Thread与Linux混合部署实现工业EtherCAT实时控制

实时操作系统(RTOS)是工业自动化领域的核心技术,通过精确的任务调度和中断响应机制确保微秒级控制精度。RT-Thread作为开源实时系统,采用优先级抢占式调度算法,能够满足运动控制和总线通信的硬实时需求。在工业显控一体设备中,实时系统需要与富应用系统协同工作,Linux系统负责图形界面和网络通信等非实时任务。混合部署架构通过共享内存和核间通信技术实现数据交换,既保证了实时性能又扩展了应用生态。EtherCAT工业以太网协议作为高性能现场总线,采用主从站结构和分布式时钟同步,可实现多轴运动控制的精确同步。R

weixin_33738982的博客 2627

http post访问文件上传接口,传递MultipartFile[]多文件和其他参数

http post访问文件上传接口,传递MultipartFile[]多文件和其他参数。

weixin_48414266的博客 4007

ARM Cortex平台NEON指令集优化实战指南

本文为ARM Cortex平台开发者提供了一份全面的NEON指令集优化实战指南。文章从NEON的SIMD架构原理讲起,详细介绍了开发环境搭建、NEON内联函数与自动向量化两种核心编程方法、关键数据类型与指令,并通过图像饱和运算、矩阵乘法等实战案例,深入解析了性能调优技巧与常见避坑指南,旨在帮助开发者充分释放ARM处理器的并行计算潜力。

weixin_29162439的博客 260

java post 上传附件,及其他参数,业务接口使用multipartFile接收实现方式

请求方: /** * 文件上传 * @param url * @param content 上传参数 * @return */ public static String uploadFile(String url, HttpEntity content) { String result = ""; CloseableHttpClient httpclient = HttpClients.createDefault(); //CloseableHttpClient ht

Kenneth-peng 3134

电源工程师必看:平均电流模式BUCK双环控制详解(从传递函数到Psim仿真)

本文详细解析了平均电流模式BUCK变换器的双环控制策略,从传递函数推导到Psim仿真实现。针对电源工程师关注的环路设计和稳定性问题,深入比较了电压模式、峰值电流模式和平均电流模式的优缺点,并提供了12V/3A BUCK变换器的完整设计案例,帮助工程师掌握平均电流控制这一中高功率应用的首选方案。

weixin_42696271的博客 398

Wi-Fi QoS中AIFSN/CWmin/CWmax/TxOP参数是怎样计算的?

802.11e/WMM的EDCA机制通过AIFS、CWmin/CWmax和TxOP三组参数实现业务优先级控制。AIFS决定最短等待时间(AIFS=SIFS+AIFSN×SlotTime),CWmin/CWmax定义退避范围(2^ECW-1),TxOP设置最大占用时长(32µs单位)。默认配置中,语音业务(VO)优先级最高,其AIFSN最小(2)、CW范围最小(3-7)、TxOP适中(1.504ms);视频(VI)次之;普通数据(BE)和后台(BK)优先级最低。调优需根据网络特性调整参数:VoIP可降低AIF

1042484520@qq.com(邮箱) 1746

MultipartFile实现文件的上传和下载

MultipartFile是SpringMVC提供简化上传操作的工具类。在不使用框架之前,都是使用原生的HttpServletRequest来接收上传的数据,文件是以二进制流传递到后端的,然后需要我们自己转换为File类, 在Spring 框架中,对于文件上传下载的支持是通过MultipartFile接口来实现的,一个MultipartFile就表示客户端传过来的一个文件,而一个MultipartFile[]数组,则表示客户端传过来的多个文件,这在实现多文件上传非常有用,当然了,通过该接口,你可以获取客户

weixin_46058921的博客 1万+

LangGraph教程8:LangGraph流式处理

流式处理可显著提升基于LLM应用的响应性。LangGraph支持两种流式模式:values模式返回每一步的完整结果,适合需要完整上下文处理的场景;updates模式仅返回增量变化,适用于实时更新需求。示例代码展示了如何用create_react_agent实现这两种模式,其中values模式完整记录处理流程,updates模式逐步输出结果。通过异步迭代输出流,开发者可以灵活选择适合应用场景的流式处理方式。

Cachel Wood的博客 620

外卖项目

这是一篇文章

2302_80248454的博客 955

点云数据处理:体素滤波算法

体素滤波是一种简单而有效的点云数据处理方法,可用于去除离群点和平滑点云表面。体素滤波是一种常用的点云数据处理算法,用于去除离群点并平滑点云表面。在本文中,我们将介绍CloudCompare和PCL(Point Cloud Library)中的体素滤波算法,并提供相应的源代码示例。PCL是一个专门用于点云处理的开源库,提供了一系列高效的点云处理算法和工具。然后,我们创建了一个。方法执行体素滤波,并将滤波后的点云保存为"filtered_cloud.ply"文件。方法来执行体素滤波,指定体素大小为0.01。

ZyqfCss的博客 388

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

HttpClient学习

HttpClient学习

雷神乐乐的博客 1760

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

springboot(3)使用MultipartFile上传数据文件及项目打成jar包

MultipartFile 对象的transferTo方法,用于文件保存(效率和操作比原先用FileOutStream方便和高效) private static final String filePath = "xxxxxxxxxxxx"; @RequestMapping("/upload") public JsonData upload(@RequestParam(...

weixin_30609331的博客 973

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

发送http请求携带MultipartFile参数

/服务端要调用的外部接口。// 添加 'accessToken' 请求头 访问需要带token则携带token。

weixin_56042678的博客 1541

okhttp多文件上传文件的使用以及注意事项

由于在项目上需要用到多文件上传并且踩了一些坑。所以特此记录。 废话不多说直接贴代码 OkHttpClient client = new OkHttpClient(); MultipartBody.Builder bodyBuilder = new MultipartBody.Builder().setType(MultipartBody.FORM); ...

wenhaisql的博客 1507

okhttp传输文件类型的参数

okhttp请求参数为文件的类型

skh2015java的博客 1575

java模拟post 提交multipart/form-data

请求页面:post参数:try {

由入门到精通 1603

java发送post请求,使用multipart/form-data格式文件数据到接口

使用multipart/form-data格式传输文件到给定接口

Khan的博客 9405

java实现HTTP请求/文件上传下载

目录 OkHttpClient get post+form post+json RestTemplate get post+form post+json OkHttpClient pom依赖 <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.5.

Lizhj的博客 1万+

使用HttpClient4,post提交multipart/form-data数据

问题由来:   在Vert.x的项目中,进行公众号开发的时候,发现回复用户图片的时候需要先上传图片,获取一个media_id,然后拿着这个media_id去发送数据。   问题是,Vert.x的vertx-web-client不提供表单文件上传(form-data)方式post请求。           于是,只能找一个HttpClient方法。发现组装一个这样的请求,并不简单 解

Andaren的博客 1万+

httpClient 的 MultipartFile 的上传与接收 hutools工具

控制台输出就不贴了, 可自行验证.文件可以获取且保存到D盘。

王sir的博客 3167

Java POST请求 multipart/form-data方式 MultipartFormDataInput解析 参数中文乱码解决方案

Java,接收请求,请求方式是:multipart/form-data,接口使用MultipartFormDataInput解析。参数包含form表单参数(String)和文件。在解析时参数中文出现乱码.MultipartFormDataInput解析中InputPart中对编码方式使用了默认值:US-ASCII,因此中文出现乱码。参考了很多multipart/form-data乱码解决的方案,都没能解决问题,还得自己看源码,找到合适的解决方案。使用InputPart时,手动设置编码方式,改成UTF-8。

sdujava2011 3379
上一篇: Java 文件操作的学习(不断更新中)
下一篇: HttpServletRequest获取各种路径的总结
Coding13
博客等级 码龄10年 53粉丝 43原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coding13

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值