HttpClient4模拟表单提交[通俗易懂]

HttpClient4模拟表单提交[通俗易懂]这里用httpclient4.3模拟一个表单普通文本提交的方法建一个servlet接受表单数据,只传递2个参数,name和password//servlet的访问地址是:http://localhost:80/testjs/servlet/FormServletpublicclassFormServletextendsHttpServlet{publicvoidd

大家好,又见面了,我是你们的朋友全栈君。

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/163293.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java如何打印菱形_打印菱形java

    java如何打印菱形_打印菱形java第一步:首先对图像进行解析想要打印如图所示的形状经过简单分析之后可得出想要打印该图形必须要进行多层循环嵌套分两个部分进行打印第一部分为上半部分前四行他们是递增的关系后半部分后三行为递减关系,由此可以得出我们需要写两个打的循环。并且由于“*”位置的关系我们必须带入空格同时打印所以每个部分需要两个循环控制,即两个大循环每个里面嵌套两个小循环总计四个循环。第二部:对数字进行分析在分析之前我们必…

  • cloudsim仿真_虚拟机cpu怎么分配

    cloudsim仿真_虚拟机cpu怎么分配CloudSim源码分析之虚拟机分配分类: 云计算 CloudSim2011-05-1514:32 1629人阅读 评论(10) 收藏 举报虚拟机integerlistnulltableobject 原文出处:虚拟机分配指的是,选择满足特定条件(内存、软件环境配置等)的主机创建虚拟机的过程,这个过程由Datacenter对象负责。VmAllocationPolicy这

    2022年10月13日
  • 分形之谢尔宾斯基(Sierpinski)地毯

    分形之谢尔宾斯基(Sierpinski)地毯前面讲了谢尔宾斯基三角形,和这一节的将把三角形变为正方形,即谢尔宾斯基地毯,它是由瓦茨瓦夫·谢尔宾斯基于1916年提出的一种分形,是自相似集的一种。谢尔宾斯基地毯的构造与谢尔宾斯基三角形相似

  • excel宏 java,Microsoft Excel宏运行Java程序

    excel宏 java,Microsoft Excel宏运行Java程序IhavelearnttoreadandwriteanExcelfileusingaJavaprogramwiththehelpofJxlandPOIAPI.IsitpossibletorunaJavaprogramwiththehelpofmacros?解决方案Yes,itispossible.Therearequit…

  • set跟map的区别_oracle set用法

    set跟map的区别_oracle set用法1.Map是键值对,Set是值的集合,当然键和值可以是任何的值;2.Map可以通过get方法获取值,而set不能因为它只有值;3.都能通过迭代器进行for…of遍历;4.Set的值是唯一的可以做数组去重,Map由于没有格式限制,可以做数据存储5.map和set都是stl中的关联容器,map以键值对的形式存储,key=value组成pair,是一组映射关系。set只有值,可以认为只有一个数据,并且set中元素不可以重复且自动排序。SetSet对象允许你存储任何类型的值,无论.

  • 优先队列(堆)priority queue

    优先队列(堆)priority queue优先队列(堆)priorityqueue完全二叉树:除了最底层都被元素填满堆序性:除根节点,最小堆每个节点父亲的Key小于等于该节点的Key,最大堆反之优先队列的申明structHeapStruct;typedefstructHeapStruct*PriorityQueue;PriorityQueueInitialize(intMaxElements);void…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号