HttpClient上传文件传入MultipartFile类型

2023-12-13 12:38

本文主要是介绍HttpClient上传文件传入MultipartFile类型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

httpClient post方式上传MultipartFile文件

注意:builder.addBinaryBody("file", file.getInputStream(), ContentType.MULTIPART_FORM_DATA, fileName);// 文件流

第一个参数:"file" 表现需要调用的上传文件接口 文件名

返回 ”Required request part 'file' is not present” 错误时,就是因为该名称 和调用的 url中文件名称不一样

第二个参数:传入文件流

第三个参数:文件类型

第四个参数:上传文件的名称

/*** post请求接口* @param url* @param imageUploadFileName* @param file* @param headerParams* @param otherParams* @return*/public static String postResultMultipartFile(String url,String imageUploadFileName,MultipartFile file,Map<String,String> headerParams, Map<String,String> otherParams) {CloseableHttpClient httpClient = HttpClients.createDefault();String result = "";HttpEntity httpEntity = null;HttpEntity responseEntity = null;try {String fileName = file.getOriginalFilename();HttpPost httpPost = new HttpPost(url);//添加header
//            for (Map.Entry<String, String> e : headerParams.entrySet()) {
//                httpPost.addHeader(e.getKey(), e.getValue());
//            }MultipartEntityBuilder builder = MultipartEntityBuilder.create();builder.setCharset(Charset.forName("utf-8"));builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);//加上此行代码解决返回中文乱码问题builder.addBinaryBody("file", file.getInputStream(), ContentType.MULTIPART_FORM_DATA, fileName);// 文件流
//            for (Map.Entry<String, String> e : otherParams.entrySet()) {
//                builder.addTextBody(e.getKey(), e.getValue());// 类似浏览器表单提交,对应input的name和value
//            }httpEntity = builder.build();httpPost.setEntity(httpEntity);HttpResponse response = httpClient.execute(httpPost);// 执行提交responseEntity = response.getEntity();if (responseEntity != null) {// 将响应内容转换为字符串result = EntityUtils.toString(responseEntity, Charset.forName("UTF-8"));}} catch (IOException e) {log.info("------------------{}",e.getMessage());e.printStackTrace();}catch (Exception e) {log.info("------------------{}",e.getMessage());e.printStackTrace();}  finally {printLog(url, HttpMethod.POST, httpEntity, null, responseEntity);}return result;}

控制器端代码

@ApiOperation(value = "通过http调用***文件接口 上传图片到***IDC服务器")@PostMapping(value = "/upload")public BizBaseResponse<String> upload(@RequestParam("file") MultipartFile file, String dir) {String upload = null;try {upload = openApiShopFileService.upload(file,dir, true);} catch (BizException e) {log.error("通过http调用***文件接口 上传图片到***IDC服务器 异常(/openapi/shop/addShopInfoToThShop)", e);return addError(BizErrorCodeEnum.OPERATION_FAILED, e.getErrorMessage());} catch (Exception e) {log.error("通过http调用***文件接口 上传图片到***IDC服务器 异常(/openapi/shop/addShopInfoToThShop)", e);return addError(BizErrorCodeEnum.OPERATION_FAILED, "上传文件失败");}return new BizBaseResponse(upload);}

 

postman调用测试:

这篇关于HttpClient上传文件传入MultipartFile类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/488507

相关文章

Pydantic中Optional 和Union类型的使用

《Pydantic中Optional和Union类型的使用》本文主要介绍了Pydantic中Optional和Union类型的使用,这两者在处理可选字段和多类型字段时尤为重要,文中通过示例代码介绍的... 目录简介Optional 类型Union 类型Optional 和 Union 的组合总结简介Pyd

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Python如何查看数据的类型

《Python如何查看数据的类型》:本文主要介绍Python如何查看数据的类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python查看数据的类型1. 使用 type()2. 使用 isinstance()3. 检查对象的 __class__ 属性4.

Java实现数据库图片上传与存储功能

《Java实现数据库图片上传与存储功能》在现代的Web开发中,上传图片并将其存储在数据库中是常见的需求之一,本文将介绍如何通过Java实现图片上传,存储到数据库的完整过程,希望对大家有所帮助... 目录1. 项目结构2. 数据库表设计3. 实现图片上传功能3.1 文件上传控制器3.2 图片上传服务4. 实现

Python容器类型之列表/字典/元组/集合方式

《Python容器类型之列表/字典/元组/集合方式》:本文主要介绍Python容器类型之列表/字典/元组/集合方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 列表(List) - 有序可变序列1.1 基本特性1.2 核心操作1.3 应用场景2. 字典(D

使用mvn deploy命令上传jar包的实现

《使用mvndeploy命令上传jar包的实现》本文介绍了使用mvndeploy:deploy-file命令将本地仓库中的JAR包重新发布到Maven私服,文中通过示例代码介绍的非常详细,对大家的学... 目录一、背景二、环境三、配置nexus上传账号四、执行deploy命令上传包1. 首先需要把本地仓中要

Java实现数据库图片上传功能详解

《Java实现数据库图片上传功能详解》这篇文章主要为大家详细介绍了如何使用Java实现数据库图片上传功能,包含从数据库拿图片传递前端渲染,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、数据库搭建&nbsChina编程p; 3、后端实现将图片存储进数据库4、后端实现从数据库取出图片给前端5、前端拿到

Python如何在Word中生成多种不同类型的图表

《Python如何在Word中生成多种不同类型的图表》Word文档中插入图表不仅能直观呈现数据,还能提升文档的可读性和专业性,本文将介绍如何使用Python在Word文档中创建和自定义各种图表,需要的... 目录在Word中创建柱形图在Word中创建条形图在Word中创建折线图在Word中创建饼图在Word

SpringBoot接收JSON类型的参数方式

《SpringBoot接收JSON类型的参数方式》:本文主要介绍SpringBoot接收JSON类型的参数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、jsON二、代码准备三、Apifox操作总结一、JSON在学习前端技术时,我们有讲到过JSON,而在