HttpClient4模拟表单提交

使用httpclient模拟表单提交,上传图片 在项目中需要根据根据别人提供的一个url来上传图片到他们的服务,看了另一个小组服务端处理我方上传的图片的方式就是处理表单提交时图片。        这样的话只能在我方的代码中模拟表单提交,来实现图片上传。没办法在项目中使用的commons-httpclient-3.1.jar,版本是3.1的,不是4.0以上的版本,导致网上的很多做法都无效。        下面来说下如何使用commons-ht 阅读详情

这里用httpclient4.3模拟一个表单普通文本提交的方法

建一个servlet接受表单数据,只传递2个参数,name和password

//servlet的访问地址是:http://localhost:80/testjs/servlet/FormServlet

public class FormServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");

                //获取传递来的参数
String name = request.getParameter("name");
String password = request.getParameter("password");

System.out.println("你输入的姓名是:"+name);
System.out.println("你输入的密码是:"+password);
//设置响应内容
response.getWriter().write(name+", 欢迎访问");
}

}


用到的jar包有:commons-codec-1.6.jar,commons-logging-1.1.3.jar,httpclient-4.3.1.jar,httpcore-4.3.jar,httpmime-4.3.1.jar


package com.test.httpClient.myTest;


import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;


import org.apache.http.Consts;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.junit.Test;

public class TestHttpClient4 {


@Test
public void test1() throws IOException{
CloseableHttpClient httpClient = HttpClients.createDefault();
try{
//post请求的url地址
HttpPost httpPost = new HttpPost("http://localhost:80/testjs/servlet/FormServlet");
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
//传递2个参数  name和password
nvps.add(new BasicNameValuePair("name","王五"));
nvps.add(new BasicNameValuePair("password","12345"));
//转码  封装成请求实体
HttpEntity reqEntity = new UrlEncodedFormEntity(nvps,Consts.UTF_8);

httpPost.setEntity(reqEntity);

System.out.println("请求url地址"+httpPost.getURI());
//提交表单请求   response是表单的响应
CloseableHttpResponse response = httpClient.execute(httpPost);
            try {
                HttpEntity respEntity = response.getEntity();
                //响应状态
                System.out.println("Login form get: " + response.getStatusLine());
                //EntityUtils.consume(entity);
                //获取响应内容
                System.out.println(EntityUtils.toString(respEntity,Charset.forName("utf-8")));
                //销毁
                EntityUtils.consume(respEntity);
            } finally {
                response.close();
            }
}finally{
httpClient.close();
}

}

}


运行结果 

test端

请求url地址http://localhost:80/testjs/servlet/FormServlet
Login form get: HTTP/1.1 200 OK
王五, 欢迎访问


tomcat服务器端

你输入的姓名是:王五
你输入的密码是:12345

使用httpclient模拟表单提交 NULL 博文链接:https://gary0416.iteye.com/blog/900498 立即下载

相关推荐

c#模拟http请求(带验证码的表单的提交)

资源内容为本人最近研究的代码,适合新手参考。 代码主要用于模拟一个浏览器页面的表单请求, 表单带验证码。 代码最终意义就是不打开浏览器通过程序直接提交http请求, 例如注册机 注册机 还有注册机 什么的~ 博客什么的太麻烦了 暂时就这样发吧

HttpClient如何发送form表单请求

HttpClient如何发送form表单请求 这就需要了NameValuePair 的传参方式,就可以进行form表单数据的传输,我在这里记录下 1.需要先定义 NameValuePair 的集合,这个集合里面放入我们form 表单的元素 List pair= new ArrayList<>();       //放入我们的form元素       pair.add(new BasicNameValuePair(“licenseNo”, licenseNo)); pair.add(new Ba

央顺科技官方博客 5572

ROS2 Control实战:多机器人仿真与控制器管理

本文详细介绍了ROS2 Control在多机器人仿真中的应用,涵盖命名空间配置、控制器管理及性能优化。通过Gazebo仿真环境和ROS2 Control框架,开发者可以高效管理多个机器人的硬件抽象和控制器,实现资源隔离与平滑切换。文章还提供了常见问题排查和调试工具推荐,助力机器人开发实践。

u9v0w的博客 203

java http 表单提交_JAVA后台使用HTTPCLIENT入门HTTPPOST请求(FORM表单提交,FILE文件上传和传输JSON数据)...

一、HttpClient简介HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。Java后台使用httpclient主要目的是为了模拟客户端的请求。2、HttpClient的请求类型实现了所有的Http请求类型,相应的类为:HttpGet、HttpP...

weixin_35965648的博客 1625

WPS JS宏实战:批量调整200个Word表格格式的避坑指南(附完整代码)

本文提供了一份详尽的WPS JS宏实战指南,针对批量调整大量Word表格格式的需求。文章深入解析了如何利用JS宏自动化设置字体、行距和边框,并重点解决了常见的“首行访问报错”等核心难题,附有可直接使用的完整代码,帮助用户显著提升文档处理效率。

weixin_29280219的博客 430

STC51单片机串口多字节数据接收的优化策略

本文深入探讨了STC51单片机串口多字节数据接收的优化策略。针对数据丢包、粘包等常见痛点,核心思路是采用“缓冲队列+定时器超时”模式,将实时处理转变为“先收纳,后处理”。文章详细讲解了硬件初始化、中断服务程序优化(快速入队与激活超时裁判)以及主循环的非阻塞设计,并进阶介绍了环形缓冲区实现与错误处理,旨在构建稳定可靠的串口通信系统。

weixin_29264201的博客 374

Httpclient 表单,json,multipart/form-data 提交 ---总结常用的方法

Httpclient 表单,json,multipart/form-data 提交 ---总结常用的方法

Aplumage的专栏 4403

1.4 《SST通用技术规范》整体框架与核心条款解读

本小节以**GB/T《电力电子变压器通用技术要求》**(固态变压器SST核心通用规范)为核心依据,结合电力电子变压器技术特性与工程应用边界,系统解析规范的整体章节框架、层级逻辑与强制性/推荐性核心条款,明确规范与传统工频变压器标准的差异,为SST拓扑设计、性能验证、出厂检验与工程落地提供标准化依据。全文以标准原文、期刊文献数据与试验规范为支撑,无主观推演与感性表述。

技术工作者 1686

HttpClient中转上传文件,模拟form表单提交MultipartFile文件post到服务器。解决中文乱码问题

在很多时候我们一个系统不单单只访问自己系统功能,需要访问别的系统,浏览器通常会报跨域请求问题。就需要先访问本系统,再通过后端调用其他系统接口。 场景:客户端A---->选择文件上传---->服务器B---->模拟form---->服务器C---->返回结果---->服务器B---->客户端A 选择文件上传模拟form返回结果返回结果客户端A服务器B服务器C...

u010029821的博客 1639

2025华为杯第二十二届中国研究生数学建模竞赛C题:围岩裂隙精准识别与三维模型重构 - 完整解题分析+完整MATLAB源码!(下篇)

🎓 本文收录于 《滚雪球学数学建模》专栏,本专栏专注于从零基础出发,带你循序渐进掌握数学建模的核心方法与思维路径。通过“滚雪球式”学习法,从最简单的生活化案例到经典建模工具,再到省赛、国赛真题实战演练,逐步积累知识与技能,帮助你搭建完整的建模体系。无论你是刚接触建模的新生,还是希望提升科研与竞赛能力的学者与工程师,本专栏都将为你提供一条清晰、高效、可实操的建模成长路线,助力你快速进阶,突破难点,迈向数学建模竞赛与实际应用的更高峰 🚀!

**My Coding Family** 1619

Coze 打通飞书多维表格,实现数据增删改查操作实战详解

基于Coze 打通飞书多维表实现数据录入系统实战详解

congge 5779

HttpClient如何进行表单提交呢?

HttpClient进行表单提交的方法分享

qq_25073223的博客 1805

YOLOv13改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进

1️⃣ 已更新种不同的改进方案,专栏内的每篇文章皆,均可顺利运行。2️⃣ 订阅专栏即可进群获取以及从的各种答疑内容。3️⃣ 全新的YOLOv13改进专栏,,只为更好的满足论文发表的要求。专栏内容,专栏实时评分,全网最高,质量保证。🎫。。

Limiiiing的博客 9156

httpclient4.3 模拟表单提交文件

org.apache.httpcomponents httpclient 4.3.6 org.apache.httpcomponents httpmime 4.3.6 package com.test; import java.io.File; import java.io.IOException; import java.nio.charset

u012882577的博客 644

国科大学习资料--机器学习方法与应用(叶齐祥)-期末考试题整理

国科大学习资料–机器学习方法与应用-期末考试题整理 ============================================================================================================================================================================================ =======================================

无名何许人的博客 2852

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

HttpClient 4.1.3模拟表单提交示例

/**  *  */ package com.li72.test; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpEntity

数据服务中心,数据平台,数据开发 7641

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

HttpClient4.5.2模拟表单post提交上传文件

1、引入相关jar包 org.apache.httpcomponents httpclient 4.5.2 org.apache.httpcomponents httpmime 4.5.2

User_xiangpeng的专栏 8118

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

clientbuilder php,通过java httpclient模拟表单上传 , PHP/5.3.3 上 empty($_FILES) 接收时为空...

通过java httpclient模拟表单上传 PHP/5.3.3 上 empty($_FILES) 为空,通过html 代码直接表单提交就是正常的。 PHP/5.4.40 也是可以的httpclient4.5.2 模拟请求的代码:InputStreamBody streamBody = new InputStreamBody(inputStream, contentType, fileData...

weixin_35958479的博客 375

HttpClient模拟表单提交上传文件

需求:如何利用HttpClient,发起post请求,模拟表单提交,在后端上传文件? 上传文件接口: /** * 文件上传测试接口 * @return */ @PostMapping("/upload") public Object uploadFileTest(@RequestParam("file") MultipartFile file, @RequestParam("file_name") String file_name, @Reque.

qq_28534469的博客 1930

java使用HttpClient post模拟表单请求返回501

现象: 公司项目从springboot1.x升级到2.x后,使用httpclient4.5包模拟表单请求,调用其他服务接口,结果返回501。 使用postman或restTemplate调用返回就正常,java程序调用就不行。java代码如下: 省略其他代码…… CloseableHttpClient client = HttpClients.createDefault(); HttpPost httpPost = new HttpPost(url); //头信息 httpPost.s...

sumengnan的博客 1926

HttpClient:模拟表单提交文件,发送multipart/form-data数据

httpclient模拟 表单上传文件提交

书山有路,学海无涯 2万+

基于HTTPS的HTTPClient模拟表单提交访问REST API

原来很少使用HTTPClient,这些日子由于工作需要用HTTPClient访问IBM的REST API,没办法必须强行补习一波废话不多说,直接上代码环境: jdk 1.7 httpclient相关jar包依赖配置<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>

阿霊羅的博客 3300

java模拟表单提交

 此方法等同于form表单提交   import java.io.File; import java.io.IOException; import java.nio.charset.Charset; import java.util.HashMap; import java.util.Map; import java.util.Set; import org.apache.http.C...

lds_desheng的博客 4015

HttpClient4模拟带文件上传的表单提交

这里用apache的HttpClient4.3模拟文件上传,上传到一个java servlet,然后用servlet解析,把上传文件放到服务器目录下 下面这个java应用,往一个java servlet中提交了一个文件,和几个普通表单属性 package com.test.httpClient; import java.io.File; import java.io.IOExcept

代码的艺术 1万+

java后台用MultipartEntityBuilder模拟表单提交文件

/** * 模拟表达提交访问 * * @param url 提交链接 * @param strMap 字符串内容 * @param fileMap 文件 * @return 返回内容 */ public static String accessHttpPost(String url, Map<String, String> strMap, Map<String, File> file...

just_a_litte_body的博客 5232

使用httpclient4上传文件

1.模拟form表单上传文件,主要是通过httpmime包中MultipartEntity对象,核心代码如下: File file = new File(filePath); FileBody fb = new FileBody(file); MultipartEntity reqEntity = new MultipartEntity(); reqEntity.addPart("myFile"

一路追寻的专栏 1253
上一篇: java 模拟表单方式提交上传文件
下一篇: HttpClient4模拟带文件上传的表单提交
墨桐
博客等级 码龄16年 7粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值