我的编程空间,编程开发者的网络收藏夹
学习永远不晚

HTTP POST请求发送form-data格式的数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

HTTP POST请求发送form-data格式的数据

1、业务需求

发送请求给第三方服务的接口,且请求报文格式为multipart/form-data的数据。支持复杂类型的参数,包含文件类型

2、 依赖包

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.58</version></dependency><dependency>            <groupId>org.apache.httpcomponents</groupId>            <artifactId>httpclient</artifactId>            <version>4.5</version>        </dependency>        <dependency>            <groupId>org.apache.httpcomponents</groupId>            <artifactId>httpmime</artifactId>            <version>4.5</version>        </dependency>

3、 请求方式实现

    public static <T> T doPostFormData(String url, Map<String, Object> param,Class<T> clazz) {        return doPostFormData(url, param,new TypeReference<T>() {@Overridepublic Type getType() {return clazz;}});    }        public static <T> T doPostFormData(String url, Map<String, Object> param,TypeReference<T> type) {        // 创建Http实例        CloseableHttpClient httpClient = HttpClients.createDefault();        // 创建HttpPost实例        HttpPost httpPost = new HttpPost(url);               // 请求参数配置        RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(60000).setConnectTimeout(60000)                .setConnectionRequestTimeout(10000).build();        httpPost.setConfig(requestConfig);               try {            MultipartEntityBuilder builder = MultipartEntityBuilder.create();            builder.setCharset(java.nio.charset.Charset.forName("UTF-8"));            builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);            //表单中其他参数           if(param != null) {           for(Map.Entry<String, Object> entry: param.entrySet()) {           Object value = entry.getValue();           System.err.println(entry.getKey());                   if(value instanceof File) {                   // 文件流                   builder.addBinaryBody(entry.getKey(), (File)value);                   }else {                   builder.addPart(entry.getKey(),new StringBody(String.valueOf(entry.getValue()), ContentType.create("text/plain", Consts.UTF_8)));                      }      }           }                       HttpEntity entity = builder.build();            httpPost.setEntity(entity);            HttpResponse response = httpClient.execute(httpPost);// 执行提交            if (response.getStatusLine().getStatusCode() == HttpStatus.OK.value()) {                // 返回                String res = EntityUtils.toString(response.getEntity(), java.nio.charset.Charset.forName("UTF-8"));                return JSON.parseObject(res).toJavaObject(type);            }                   } catch (Exception e) {            e.printStackTrace();            log.error("调用HttpPost失败!" ,e);        } finally {            if (httpClient != null) {                try {                    httpClient.close();                } catch (IOException e) {                log.error("关闭HttpPost连接失败!",e);                }            }        }               return null;    }

4、 其他

4.1、 MultipartFile对象转换File对象

4.1.1、 依赖包

commons-iocommons-io2.6

4.1.1、 实现

public static File getFile(String path,MultipartFile multipartFile) {try {File file = new File(path); FileUtils.copyInputStreamToFile(multipartFile.getInputStream(), file);return file;} catch (IOException e) {e.printStackTrace();}return null;}

来源地址:https://blog.csdn.net/qq_43432189/article/details/130563323

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

HTTP POST请求发送form-data格式的数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

HTTP POST请求发送form-data格式的数据

1、业务需求 发送请求给第三方服务的接口,且请求报文格式为multipart/form-data的数据。支持复杂类型的参数,包含文件类型 2、 依赖包 dependency>groupId>org.projectlombok/groupId
2023-08-19

Python发送form-data请求及拼接form-data内容的方法

网上关于使用python 的发送multipart/form-data的方法,多半是采用 ulrlib2 的模拟post方法,如下:import urllib2boundary='-------------------------7df30
2022-06-04

Java请求调用参数格式为form-data类型的接口

接口参数使用postman调用如图所示,只能使用form-data格式调用 使用java代码发送http请求实现此种方式的接口调用 public static String doPostForm(String url, HashMapSt
2023-08-20

python怎样通过get方式,post方式发送http请求和接收http响应

这期内容当中小编将会给大家带来有关python怎样通过get方式,post方式发送http请求和接收http响应,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.GET方法get方法是直接将要请求的数据放
2023-06-04

java发送http get请求的两种方式

长话短说,废话不说一、第一种方式,通过HttpClient方式,代码如下:public static String httpGet(String url, String charset) throws HttpException, IO
2023-05-31

JAVA发送HTTP请求的方式有哪些

这篇文章主要介绍“JAVA发送HTTP请求的方式有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JAVA发送HTTP请求的方式有哪些”文章能帮助大家解决问题。1. HttpURLConnecti
2023-07-05

详解Android中使用OkHttp发送HTTP的post请求的方法

HTTP POST 和 PUT 请求可以包含要提交的内容。只需要在创建 Request 对象时,通过 post 和 put 方法来指定要提交的内容即可。 HTTP POST 请求的基本示例:public class PostString {
2022-06-06

linux shell中curl 发送post请求json格式问题的处理方法

今天在linux中使用curl发送一个post请求时,带有json的数据,在发送时发现json中的变量没有解析出来 如下curl -i -X POST -H 'Content-type':'
2022-06-04

Servlet如何获取AJAX POST请求中参数以form data和request payload形式传输

这篇文章主要介绍Servlet如何获取AJAX POST请求中参数以form data和request payload形式传输,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!本文实例讲述了Servlet获取AJAX P
2023-05-30

在JAVA中发送HTTP请求的方式有哪些

在JAVA中发送HTTP请求的方式有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式
2023-06-06

JAVA发送HTTP请求的多种方式详细总结

目前做项目中有一个需求是这样的,需要通过Java发送url请求,查看该url是否有效,这时我们可以通过获取状态码来判断,下面这篇文章主要给大家介绍了关于JAVA发送HTTP请求的多种方式总结的相关资料,需要的朋友可以参考下
2023-01-30

基于node.js依赖express解析post请求四种数据格式

node.js依赖express解析post请求四种数据格式 分别是这四种:www-form-urlencodedform-dataapplication/jsontext/xml1、www-form-urlencoded这是http的po
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录