这里用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

HttpClient4模拟表单提交相关推荐

  1. 为什么要模拟表单提交

    为什么要模拟表单提交 现在许多的网站都是需要登录验证后才能访问该网站的页面,爬虫(网络机器人[spider])该怎么获取这些页面呢!是的,爬虫也是需要登录的,才能获取到后面的页面. 爬虫怎么模拟表单登 ...

  2. python图书馆抢座_python模拟表单提交登录图书馆

    本文实例为大家分享了python模拟登录图书馆的具体代码,供大家参考,具体内容如下 模拟表单提交的原理: 我们都知道Http是无状态的,所以当我们提交的数据和浏览器中正常提交一样,那么服务器就会返回和 ...

  3. php模拟表单提交登录,PHP模拟表单的post请求实现登录

    'stuid' => $stuid, 'pwd' => $pwd ); $ch = curl_init (); //初始化curl curl_setopt ( $ch, CURLOPT_U ...

  4. php 模拟表单提交-get-post

    <?php header("Content-Type: text/html; charset=utf-8");/*** Class SimulantForm 模拟表单*/ c ...

  5. ajax 模拟表单提交,Ajax模拟Form表单提交,含多种数据上传

    ---恢复内容开始--- Ajax提交表单.使用FormData提交表单数据和上传的文件(这里的后台使用C#获取,你可以使用Java一样获取) 有时候前台的数据提交到后台,不想使用form表单上传,希 ...

  6. curl 模拟表单提交

    //GET方式 $url = "/Api/Raiders/doEditRaiders?content=123"; $ch = curl_init (); curl_setopt ( ...

  7. qt向服务器传输文字_Qt 模拟 HTTP 表单提交文字或文件到服务器

    传统通过 HTTP 表单的方式来上传文件在 Web 中实现是非常简单的,一个表单中加几个域填写上对应的内容提交就可以了,但如果通过 Qt 来实现就相对麻烦一点,不过我都总结好了代码,直接使用就可以了. ...

  8. js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题...

    js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题 js模拟form表单提交数据源码: /** * js模拟form表单提交 * @param ...

  9. AJAX学习笔记——发送AJAX的POST请求,模拟from表单提交

    关于AJAX发送POST请求,首先演示一个小案例. 当输入用户名:张三,密码:123.点击发送请求按钮 这是用post请求模拟的表单提交.接下来看一下如何用AJAX发送POST请求 后端代码: @We ...

  10. JS模拟Form表单提交

    用java写了一个下载的功能,测试没有问题,但前台就是不弹出下载的提示框. 后来发现如果你的提交方式是ajax的方式的话是不会弹出提示框的,然后换成了form提交,顺利弹框通过,下来我们就用js模拟f ...

最新文章

  1. 世界公认最好的记忆方法_世界记忆大师:6种简单实用记忆方法,让孩子成为学霸中学霸...
  2. Vs 2015 批量 删除注释
  3. ActiveMQ 5.x中的消息持久性
  4. python实例变量不存在_python – peewee实例匹配查询不存在
  5. gcc编译ceres-solver报错‘is_trivially_default_constructible’ is not a member of ‘std’
  6. 每天一个linux命令(10):more命令
  7. php生成成语,洪恩在线成语词典小偷程序php版_PHP教程
  8. 英雄联盟官宣IG冠军皮肤原画 彩蛋是王思聪吃热狗
  9. malloc.h头文件和malloc函数详解
  10. 第四次实验任务 任务一
  11. 【Oracle SQL】计算同比与环比(列转行进行偏移)
  12. 组建团队和调整团队结构
  13. 练习3-8 查询水果价格 (15 分)
  14. Android免打包多渠道统计如何实现?通用流行框架大全
  15. Chrome OS 与 Android 的生死爱欲
  16. 打印大的打印机打印不出来
  17. android 属性动画伸缩,Android动画开发——Animation动画效果详解
  18. 勇者与羁绊 游戏开发日志(一)
  19. 计算机考研真题及答案(含选择题解析)
  20. 解决微信公众账号申请认证方面的问题

热门文章

  1. 关于超定方程组的解算方法
  2. 给定一段IP地址172.18.18.128/26,试为该网络做一个IP地址规划,要求开 发室1、开发室2以及制造部各为一个VLAN。
  3. 宽带波形测试软件,适用于5G时代的波形测试分析系统是怎样的? - 全文
  4. 基于单片机的数字频率计设计
  5. 车载android播放器,KX万能播放器
  6. 【实用软件】电脑wifi密码查看器
  7. 机械制图国家标准的绘图模板_JS制图:映射
  8. 是时候觉悟了!一篇文章让你明白数据结构与算法分析有多重要
  9. 写给喜欢单片机的初学者
  10. 佳缘男的计算机软件出差,交友我在世纪佳缘认识了一个男人,今年32岁,通信接近一个月,觉得 爱问知识人...