SpringCloud接收MultiPartFile文件 | HttpClient发送MultiPartFile请求到SpringCloud

本文介绍了如何在SpringBoot应用中利用HttpClient向SpringCloud发送MultiPartFile请求,解决@RequestPart注解及FeignClient配置不成功的问题。文中详细讲解了HttpUtils工具类的创建,以及SpringCloud接收MultiPartFile文件的方法,同时提到了可能出现的中文乱码问题及其解决方案。
摘要由CSDN通过智能技术生成

首先,感谢作者 一缕82年的清风的文章,因为在使用HttpClient发送请求之前,我使用@requestPart注解,或者通过在@FeignClient中配置configuration都不行。接下来详细说说通过HttpClient发送请求的做法。

 

本地环境:eclipse+springboot+springcloud

本例使用的maven依赖:

!-- HttpClient -->
	    <dependency>
	        <groupId>commons-httpclient</groupId>
	        <artifactId>commons-httpclient</artifactId>
	        <version>3.1</version>
	        <type>pom</type>
	    </dependency>

1.新建HttpUtils工具类,内容如下:

package com.aspire.oms.util;

import java.io.IOException;
import java.nio.charset.Charset;
import java.util.Map;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
i
以下是Java使用HttpClient发送MultipartFile的示例代码: ```java import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.ContentType; import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.entity.mime.content.FileBody; import org.apache.http.entity.mime.content.StringBody; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; import java.nio.charset.Charset; public class HttpClientUtil { public static String sendMultipartFile(String url, MultipartFile file, String paramStr) throws IOException { HttpClient httpClient = HttpClientBuilder.create().build(); HttpPost httpPost = new HttpPost(url); // 构建请求参数 FileBody fileBody = new FileBody(convert(file)); StringBody stringBody = new StringBody(paramStr, ContentType.create("text/plain", Charset.forName("UTF-8"))); HttpEntity reqEntity = MultipartEntityBuilder.create() .addPart("file", fileBody) .addPart("paramStr", stringBody) .build(); httpPost.setEntity(reqEntity); // 发送请求 HttpResponse response = httpClient.execute(httpPost); HttpEntity resEntity = response.getEntity(); String result = EntityUtils.toString(resEntity, Charset.forName("UTF-8")); return result; } private static File convert(MultipartFile file) throws IOException { File convFile = new File(file.getOriginalFilename()); file.transferTo(convFile); return convFile; } } ``` 其中,`sendMultipartFile`方法接收三个参数:请求URL、MultipartFile文件请求参数。该方法使用HttpClient发送POST请求,将文件和参数一起发送到指定的URL,并返回响应结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值