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

Java发送form-data请求

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

Java发送form-data请求

在Java中发送form-data请求,可以使用Apache HttpClient或OkHttp这样的HTTP客户端库来发送请求。

一、HttpClient

添加依赖

    org.apache.httpcomponents    httpclient    4.5.13

代码

package request;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.impl.client.HttpClientBuilder;import org.apache.http.util.EntityUtils;import java.io.File;import java.io.IOException;public class FormDataExample {    public static void main(String[] args) throws IOException {        String  url = "http://127.0.0.1:3000/aaa/fileUpload.jsp";        MultipartEntityBuilder builder = MultipartEntityBuilder.create();        builder.addTextBody("text2", "value1");        builder.addTextBody("text3", "value2");        builder.addBinaryBody("file1", new File("D:\\fanwei\\学习\\工具地址.txt"), ContentType.APPLICATION_OCTET_STREAM, "filename2.txt");        String StringResult = sendPostFormData(url, builder);        System.out.println(StringResult);    }        public static String  sendPostFormData(String url, MultipartEntityBuilder builder){        String StringResult = "";        //不需要手动关闭httpClient        HttpClient httpClient = HttpClientBuilder.create().build();        HttpPost httpPost = new HttpPost(url);        // 构建form-data请求体        HttpEntity entity = builder.build();        httpPost.setEntity(entity);        // 发送请求并获取响应        HttpResponse response = null;        try {            response = httpClient.execute(httpPost);            HttpEntity responseEntity = response.getEntity();            StringResult = EntityUtils.toString(responseEntity);        } catch (IOException e) {            StringResult = "errorException:" + e.getMessage();            e.printStackTrace();        }        return StringResult;    }}

对于HttpClient对象,HttpClientBuilder.create().build()创建的实例是不需要手动关闭的。

在使用HttpClientBuilder创建HttpClient对象时,不需要手动关闭HttpClient对象。这是因为HttpClientBuilder在创建HttpClient对象时,会自动管理底层的连接池和资源释放。

HttpClientBuilder会创建一个CloseableHttpClient的实例,它实现了Closeable接口,可以自动关闭相关资源。当不再需要使用HttpClient时,可以让垃圾回收器自动回收HttpClient对象,并自动关闭底层的连接池和资源。

需要注意的是,如果使用了连接池,关闭HttpClient并不会立即关闭底层的连接池,而是将连接返回给连接池以供重用。连接池会根据一定的策略来管理连接的生命周期。因此,关闭HttpClient并不会立即关闭与服务器的连接,而是将连接返回给连接池以供下次使用。

总结起来,使用HttpClientBuilder创建的HttpClient对象不需要手动关闭,它会自动管理底层的连接池和资源释放。当不再需要使用HttpClient时,可以让垃圾回收器自动回收HttpClient对象。

二、OkHttp

添加依赖

    org.apache.httpcomponents    httpclient    4.5.13

代码

package request;import okhttp3.*;import java.io.File;import java.io.IOException;public class FormDataExample2 {    public static void main(String[] args) throws IOException {        OkHttpClient client = new OkHttpClient();        // 构建form-data请求体        RequestBody requestBody = new MultipartBody.Builder()                .setType(MultipartBody.FORM)                .addFormDataPart("field1", "value1")                .addFormDataPart("field2", "value2")                .addFormDataPart("file", "filename.txt",                        RequestBody.create(MediaType.parse("application/octet-stream"), new File("D:\\fanwei\\学习\\工具地址.txt")))                .build();        // 构建请求        Request request = new Request.Builder()                .url("http://127.0.0.1:3000/aaa/fileUpload.jsp")                .post(requestBody)                .build();        // 发送请求并获取响应        try (Response response = client.newCall(request).execute()) {            String responseBody = response.body().string();            // 处理响应            System.out.println(responseBody);        }    }}

其他发送请求,请参阅

httpclient 发送请求_httpclient发请求_有梦想的菜的博客-CSDN博客

文件上传,请参阅

Java文件上传_java上传文件_有梦想的菜的博客-CSDN博客

来源地址:https://blog.csdn.net/qq_51534884/article/details/132233372

免责声明:

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

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

Java发送form-data请求

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

下载Word文档

猜你喜欢

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

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

Java发送form-data请求怎么实现文件上传

这篇“Java发送form-data请求怎么实现文件上传”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java发送form-
2023-07-02

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

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

java怎么发送post请求

在Java中发送POST请求,可以使用java.net包中的HttpURLConnection类。以下是一个简单的示例代码:```javaimport java.io.BufferedReader;import java.io.DataOu
2023-08-20

java怎么发送tcp请求

Java可以使用Socket类来发送TCP请求。下面是一个简单的示例代码:```javaimport java.io.BufferedReader;import java.io.IOException;import java.io.Inpu
2023-09-26

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

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

Java中Https发送POST请求的方法

这篇文章主要介绍Java中Https发送POST请求的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象;3. 分
2023-06-15

java怎么发送get请求header传参

在Java中发送GET请求并传递header参数,可以使用`java.net.HttpURLConnection`类。下面是一个示例代码:import java.io.BufferedReader;import java.io.Inpu
2023-10-26

用python发送put请求

做了一个服务,上传数据时接受put请求,查了一下,客户端代码用Python来写的话非常简单,跟Post基本一致。这里是一个用PUT上传文件数据的例子:import urllib2opener = urllib2.build_opener(u
2023-01-31

python如何使用form-data形式上传文件请求

本篇内容介绍了“python如何使用form-data形式上传文件请求”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!虽然现在基本上都约定俗成
2023-07-06

编程热搜

  • 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动态编译

目录