上传图片流

/**
* 使用httpclint 发送文件,如果不传输文件,直接设置fileParams=null,
* 如果不设置请求头参数,直接设置headerParams=null,就可以进行普通参数的POST请求了
*
* @param url 请求路径
* @param fileParams 文件参数
* @param otherParams 其他字符串参数
* @param headerParams 请求头参数
* @return 返回结果
*/
public static String uploadFile(String url, Map<String, MultipartFile> fileParams, Map<String, String> otherParams, Map<String, String> headerParams) {
CloseableHttpClient httpClient = HttpClients.createDefault();
String result = “”;
try {
HttpPost httpPost = new HttpPost(url);
//设置请求头
if (headerParams != null && headerParams.size() > 0) {
for (Map.Entry<String, String> e : headerParams.entrySet()) {
String value = e.getValue();
String key = e.getKey();
if (StringUtils.isNotBlank(value)) {
httpPost.setHeader(key, value);
}
}
}
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setCharset(StandardCharsets.UTF_8);
//加上此行代码解决返回中文乱码问题
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
//文件传输http请求头(multipart/form-data)
if (fileParams != null && fileParams.size() > 0) {
for (Map.Entry<String, MultipartFile> e : fileParams.entrySet()) {
String fileParamName = e.getKey();
MultipartFile file = e.getValue();
if (file != null) {
String fileName = file.getOriginalFilename();
// 文件流
builder.addBinaryBody(fileParamName, file.getInputStream(), ContentType.MULTIPART_FORM_DATA, fileName);
}
}
}
//字节传输http请求头(application/json)
ContentType contentType = ContentType.create(“application/json”, StandardCharsets.UTF_8);
if (otherParams != null && otherParams.size() > 0) {
for (Map.Entry<String, String> e : otherParams.entrySet()) {
String value = e.getValue();
if (StringUtils.isNotBlank(value)) {
// 类似浏览器表单提交,对应input的name和value
builder.addTextBody(e.getKey(), value, contentType);
}
}
}
HttpEntity entity = builder.build();
httpPost.setEntity(entity);
// 执行提交
HttpResponse response = httpClient.execute(httpPost);
HttpEntity responseEntity = response.getEntity();
if (responseEntity != null) {
// 将响应内容转换为字符串
result = EntityUtils.toString(responseEntity, StandardCharsets.UTF_8);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/723821.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 中为什么主线程不会因为 Looper.loop() 里的死循环卡死?

在 Android 中&#xff0c;主线程&#xff08;通常被称为 UI 线程或事件分发线程&#xff09;通过 Looper.loop() 方法进入一个无限循环&#xff0c;这个循环负责处理各种事件&#xff0c;如按钮点击、触摸事件、绘制请求等。尽管这是一个死循环&#xff0c;但它并不会导致主线…

基于Python dlib的人脸识别的上课考勤管理系统(V2.0)

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

day49(vueJS)vue3的生命周期钩子 服务端渲染概念 vue3的组建通信 vue3的ref属性应用 vue3(vuex和pinia的使用)

vue3的生命周期钩子 服务端渲染概念 vue3的组建通信 vue3的ref属性应用 vue3&#xff08;vuex和pinia的使用&#xff09; vue3的生命周期钩子常规要点、总结代码演示 补充要点、总结 服务端渲染概念要点总结 vue3的组建通信要点总结父对子传值子对父传值跨层级组件传值 vue3的r…

2024年Android开发陷入饱和,想拿高工资

前言 从16年毕业至今&#xff0c;就职过两家公司&#xff0c;大大小小项目做了几个&#xff0c;非常感谢我的两位老大&#xff0c;在我的android成长路上给予我很多指导&#xff0c;亦师亦友的关系。 从年前至今参加面试了很多公司&#xff0c;也收到了几家巨头的offer&#…

2024Java大厂面试真题,java高级开发面试经验

概述 毫无疑问&#xff0c;Spring Cloud是目前微服务架构领域的翘楚&#xff0c;无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面&#xff0c;其底层的很多原理&#xff0c;很多人可能并不知晓。因此本文将通过大量的手绘图&#xff0c;…

一次线上JVM GC 长暂停排查,加班搞了好久

给大家分享一篇我在知乎上看到的&#xff0c;针对长时间 GC 问题排查定位过程的文章。 最终原因定位到 swap 空间上&#xff0c;是我未曾设想过的角度&#xff0c;因为常规的 GC 问题&#xff0c;相当大一部分原因最终定位出来都是代码相关、流量相关、配置相关的&#xff0c;…

C++高级面试题:什么是C++的模板元(Template Argument)?请提供一个示例。

什么是C的模板元&#xff08;Template Argument&#xff09;&#xff1f;请提供一个示例。 在 C 中&#xff0c;模板参数&#xff08;Template Argument&#xff09;是指在模板的实例化过程中&#xff0c;为模板提供的具体类型、值或模板的参数。模板参数可以是类型、非类型或模…

需求并行开发场景,如何高效发布

云布道师 微服务架构下&#xff0c;每个应用服务独立开发、独立发布&#xff0c;小步快跑&#xff0c;持续快速交付业务需求。多人协同开发同一个应用时&#xff0c;分支开发模式是一个适合的协同方案。该模式下一个需求或任务通常对应一个 feature 分支&#xff0c;多个需求一…

测试用例例子:在线购物平台的结算功能测试

用例标题&#xff1a;在线购物平台结算功能测试 测试目的&#xff1a; 验证在线购物平台的结算功能是否正常工作&#xff0c;确保用户能够顺利完成支付流程。 用例级别&#xff1a;高 测试环境&#xff1a; 操作系统&#xff1a;Windows 10浏览器&#xff1a;Chrome 最新版…

WSL2安装+深度学习环境配置

WSL2安装深度学习环境配置 1 安装WSL22 配置深度学习环境1.1 设置用户名、密码1.2 安装cuda修改WSL安装路径 1.3 安装Anaconda 参考&#xff1a;搭建Windows Linux子系统&#xff08;WSL2&#xff09;CUDA环境 参考&#xff1a;深度学习环境配置 WindowsWSL2 1 安装WSL2 WSL …

《计算机程序的构造和解释》:计算思维的圣经,引领你走向编程的巅峰

写在前面 《计算机程序的构造和解释》&#xff08;Structure and Interpretation of Computer Programs&#xff0c;简记为SICP&#xff09;是MIT的基础课教材&#xff0c;出版后引起计算机教育界的广泛关注&#xff0c;对推动全世界大学计算机科学技术教育的发展和成熟产生了…

判断文件类型

public static void main(String[] args) { String filePath "C:\\Users\\XXX\\Downloads\\5542402071585721"; // 文件路径 // 创建 File 对象 File file new File(filePath); // 创建 MimeTypes 实例 MimeTypes mimeTypes MimeTypes.getDefaultMimeTypes(); try…

【QT】自定义控件的示例

自定义控件&#xff08;很重要&#xff09; 什么是自定义控件&#xff1f; 顾名思义就是创建一个窗口&#xff0c;放入多个控件&#xff0c;拼接起来&#xff0c;一起使用。 为什么需要它&#xff1f; 需求&#xff0c;假设有100个窗口&#xff0c;那如果有两个控件同时被使…

JavaWeb - 1 - 概述

一.什么是Web&#xff1f; Web&#xff1a;全球广域网&#xff0c;也称为万维网&#xff08;www World Wide Web&#xff09;&#xff0c;能够通过浏览器访问的网站 二.Web网站的工作流程 三.Web网站的开发模式 3.1 前后端分离开发&#xff08;主流&#xff09; 3.2 混合开发…

PaddleSeg分割框架解读[01] readme解读

简介 PaddleSeg是基于飞桨PaddlePaddle的端到端图像分割套件,内置45+模型算法及140+预训练模型,支持配置化驱动和API调用开发方式,打通数据标注、模型开发、训练、压缩、部署的全流程,提供语义分割、交互式分割、Matting、全景分割四大分割能力,助力算法在医疗、工业、遥…

MooC下载pdf转为ppt后去除水印方法

1、从MooC下载的课件&#xff08;一般为pdf文件&#xff09;可能带有水印&#xff0c;如下图所示&#xff1a; 2、将pdf版课件转为ppt后&#xff0c;同样带有水印&#xff0c;如下图所示&#xff1a; 3、传统从pdf中去除水印方法不通用&#xff0c;未找到有效去除课件pdf方法…

2024年Android开发陷入饱和,安卓面试题2024中高级

点击领取完整开源项目《安卓学习笔记总结最新移动架构视频大厂安卓面试真题项目实战源码讲义》 前言 这是一篇软文、但是绝对不是鸡汤&#xff1b;为啥不是呢&#xff1f;因为我文笔太差…偶尔矫情发发牢骚&#xff08;勿喷&#xff09; 说说程序猿行业 现在社会上给IT行业…

香港媒体发稿:【超值1元港媒发稿套餐】推广技巧-华媒舍

在当今竞争激烈的市场中&#xff0c;品牌的推广是企业取得成功的关键。众多的宣传渠道中&#xff0c;香港媒体发稿无疑是一种高效的品牌推广方式。本文将为您介绍《超值1元港媒发稿套餐》的各个组成部分&#xff0c;以及它如何帮助您实现品牌的腾飞。 1. 1元套餐的优势 1元港媒…

从《繁花》看图数据库的关联力!

2024年开年&#xff0c;最热的电视剧非《繁花》莫属。 这部现象级剧集不仅在全国掀起了一股怀旧潮&#xff0c;还引发了对故事情节和人物关系的深入探讨。 随着《繁花》的热播&#xff0c;不少观众为了更好地理解复杂的故事情节&#xff0c;开始自制人物关系图。 这些关系图以…

小白跟做江科大51单片机之AT24C02数据存储

1.导入Delay、key、LCD1602相关文件 2.控制逻辑 以I2C去写入&#xff0c;用AT24C02包装好&#xff0c;main调用即可 3.编写I2C代码 看着这六个状态编 图1 开和关 图2 发送一个字节 图3 接收一个字节 图4 接收和发送应答 #include <REGX52.H> sbit I2C_SCL P2^1; sbi…