iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >HTTP POST请求发送form-data格式的数据
  • 483
分享到

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

javaservlet开发语言 2023-08-19 21:08:32 483人浏览 八月长安
摘要

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

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

--结束END--

本文标题: HTTP POST请求发送form-data格式的数据

本文链接: https://www.lsjlt.com/news/375916.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • HTTP POST请求发送form-data格式的数据
    1、业务需求 发送请求给第三方服务的接口,且请求报文格式为multipart/form-data的数据。支持复杂类型的参数,包含文件类型 2、 依赖包 org.projectlomboklombokcom.alibabafastjson1....
    99+
    2023-08-19
    java servlet 开发语言
  • Java发送form-data请求
    在Java中发送form-data请求,可以使用Apache HttpClient或OkHttp这样的HTTP客户端库来发送请求。 一、HttpClient 添加依赖 org.apache.httpcomponents htt...
    99+
    2023-09-09
    java 开发语言 okhttp
  • Vue-cli中post请求发送Json格式数据方式
    目录post请求发送Json格式数据举个例子解决post请求无法携带数据问题post请求发送Json格式数据 这里就不详细说明了 举个例子 var param = new URLSe...
    99+
    2024-04-02
  • requests 发送一个 json 格式的 post 请求
    今天给一位同学解决post发送数据格式为json格式的请求,顺便确认一下问题归属。 背景: 用postman工具发送一个数据格式为json的请求,得到了服务器的响应。 用python的requests库写的请求,却报错了。没有得到该有...
    99+
    2023-09-01
    json python postman Powered by 金山文档
  • C#通过GET/POST方式发送Http请求
    目录两者的区别:参数传输数据的大小 安全性 Get请求 Post请求 介绍http请求的两种方式,get和post方式。并用C#语言实现,如何请求url并获取返回的数据 两者的区别:...
    99+
    2024-04-02
  • python中Requests发送json格式的post请求方法
    目录前言1.普通string类型2.string内是字典的3.元组(嵌套列表或者)4.字典5.json6.传入非嵌套元组或列表7.以post(url,json=data)请求前言 问...
    99+
    2024-04-02
  • vue如何实现发送websocket请求和http post请求
    这篇文章主要介绍vue如何实现发送websocket请求和http post请求,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!先给大家介绍下vue发送websocket请求和http...
    99+
    2024-04-02
  • Java发送form-data请求实现文件上传
    如何使用Java发送form-data格式的请求上传multipart文件,供大家参考,具体内容如下 封装了以下工具类: package com.leeyaonan.clinkz.c...
    99+
    2024-04-02
  • 解决axios发送post请求上传文件到后端的问题(multipart/form-data)
    目录项目场景:问题描述原因分析:解决方案:项目场景: 后端:实现了一个文件上传服务接口,可以接收前端传递过来的MultipartFile文件,并存储到服务器本地中。前端:获取type...
    99+
    2024-04-02
  • RestTemplate发送HTTP POST请求使用方法详解
    目录一、postForObject发送JSON格式请求二、postForObject模拟表单数据提交三、url支持占位符语法四、postForEntity()方法五、postForL...
    99+
    2024-04-02
  • C#发送Get、Post请求(带参数)
    目录Get请求Post请求Get请求 1.简单发送Get请求 /// <summary> /// 指定Url地址使用Get 方式获取全部字符串 /// </su...
    99+
    2024-04-02
  • Java请求调用参数格式为form-data类型的接口
    接口参数使用postman调用如图所示,只能使用form-data格式调用 使用java代码发送http请求实现此种方式的接口调用 public static String doPostForm(String url, HashMap m...
    99+
    2023-08-20
    java 开发语言
  • Vue如何设置axios请求格式为form-data
    这篇文章将为大家详细讲解有关Vue如何设置axios请求格式为form-data,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Cover在Vue中使用axios!!! 设...
    99+
    2024-04-02
  • Java发送form-data请求怎么实现文件上传
    这篇“Java发送form-data请求怎么实现文件上传”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java发送form-...
    99+
    2023-07-02
  • python怎样通过get方式,post方式发送http请求和接收http响应
    这期内容当中小编将会给大家带来有关python怎样通过get方式,post方式发送http请求和接收http响应,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。GET方法get方法是直接将要请求的数据放在u...
    99+
    2023-06-04
  • 使用HttpURLConnection发送POST请求并携带请求参数
    1、先创建URL对象,指定请求的URL地址。 URL url = new URL("http://example.com/api"); 2、调用URL对象的openConnection()方法创建HttpURLConnection对象。 ...
    99+
    2023-08-31
    java spring intellij-idea spring boot
  • JAVA发送HTTP请求的方式有哪些
    这篇文章主要介绍“JAVA发送HTTP请求的方式有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JAVA发送HTTP请求的方式有哪些”文章能帮助大家解决问题。1. HttpURLConnecti...
    99+
    2023-07-05
  • java发送http get请求的两种方式
    长话短说,废话不说一、第一种方式,通过HttpClient方式,代码如下:public static String httpGet(String url, String charset) throws HttpException, IO...
    99+
    2023-05-31
    java http get
  • Java中Https发送POST请求的方法
    这篇文章主要介绍Java中Https发送POST请求的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象;3. 分...
    99+
    2023-06-15
  • Servlet如何获取AJAX POST请求中参数以form data和request payload形式传输
    这篇文章主要介绍Servlet如何获取AJAX POST请求中参数以form data和request payload形式传输,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!本文实例讲述了Servlet获取AJAX P...
    99+
    2023-05-30
    servlet ajax post
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作