java模拟servlet_Java应用程序模拟向Servlet发送POST请求
在某些情况下,需要用Java applicatioin来模拟form,向服务器(本文以servlet为例)发送http post请求,包括提交表单域中的数据以及上传文件。如果仅仅是传递form中的数据,而不包含上传文件,那是很简单的,比如Java application可以这么写:
package com.pat.postrequestemulator;
importjava.io.BufferedReader;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.OutputStreamWriter;
importjava.net.HttpURLConnection;
importjava.net.URL;
public classPostRequestEmulator
{
public static void main(String[] args)throws Exception
{
// 服务地址
URL url = newURL("http://127.0.0.1:8080/test/upload");
// 设定连接的相关参数
HttpURLConnection connection= (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
OutputStreamWriter out = newOutputStreamWriter(connection.getOutputStream(), "UTF-8");
// 向服务端发送key = value对
out.write("username=kevin&password=pass");
out.flush();
out.close();
// 获取服务端的反馈
String strLine="";
String strResponse ="";
InputStream in =connection.getInputStream();
BufferedReader reader = newBufferedReader(new InputStreamReader(in));
while((strLine =reader.readLine()) != null)
{
strResponse +=strLine +"\n";
}
System.out.print(strResponse);
}
}
服务端的servlet可以这么写:
packagecom.pat.handlinghttprequestservlet;
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
public classHandlingHttpRequestServlet extends HttpServlet
{
private static final longserialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequestreq, HttpServletResponse resp)
throws ServletException, IOException
{
super.doGet(req, resp);
}
@Override
protected voiddoPost(HttpServletRequest req, HttpServletResponse resp)
throwsServletException, IOException
{
String username =req.getParameter("username"); //获取username所对应的value
String password =req.getParameter("password"); //获取password所对应的value
System.out.println("Thereceived username and password is: " + username + "/" +password);
// 向请求端发回反馈信息
PrintWriter out =resp.getWriter();
out.print("OK");
out.flush();
out.close();
super.doPost(req, resp);
}
}
一切看起来都不复杂。但是如果要模拟的表单,除了要向服务器传递如上面的“key = value”这样的普通信息,同时还要上传文件,事情就复杂得多。
java模拟servlet_Java应用程序模拟向Servlet发送POST请求相关推荐
- JAVA关于集合类小程序--模拟新浪用户注册
JAVA关于集合类小程序–模拟新浪用户注册 任务介绍: 编写一个模拟新浪微博用户注册的小程序,要求使用HashSet集合来实现.用户需要输入的有:用户名,密码.确认密码.生日(格式为:yyyy-mm- ...
- 解决java编译错误(程序包javax.servlet不存在javax.servlet.*)
解决java编译错误(程序包javax.servlet不存在javax.servlet.*) 两种解决方法 第一种: 1.在电脑搜索servlet-api.jar 一般在apache-tomcat-8 ...
- java编译错误:程序包javax.servlet不存在javax.servlet.*
今天在关于servlet的编译中出现了一下小小的错误,如图所示: 程序包javax.servlet不存在,并且程序包javax.servlet.http不存在等错误.我查阅了一下资料由于servlet ...
- java请求servlet,[Java]Servlet发送Post请求
演示实例:AServlet发送一个Student对象到BServlet #### 1.AServlet部分 首先造一个学生stu,然后通过fastjson的`toJSONString`方法把对象转换成 ...
- java 猜密码 本地程序 模拟_java – 使用AES / CTR模拟流密码
我正在编写一个应用程序服务器,我决定使用AES128 / CTR / NoPadding来保护连接,因为它被认为足够安全而不必将字节扩展到块边界,我认为它非常适合TCP.在逻辑上是一个无缝的流. 问题 ...
- 小程序模拟服务器,小程序模拟请求服务器json数据
那么,怎么请求服务器json数据? 如果你是一枚前端,不会写后端接口的话 又想测试数据,看自己写的效果的时候 不要慌 那么,把你的json放在服务器底下 模拟请求服务器json数据即可 步骤: 1用能 ...
- 解决java编译错误( 程序包javax.servlet不存在javax.servlet.*)
先把Tomcat下的lib文件夹里面的servlet-api.jar路劲添加到classpath下,然后再把servlet-api.jar拷贝到JDK路劲的jre\lib\ext文件夹下即可.
- 微信小程序真机无法发送网络请求or网络错误解决方法
问题 公司一项目用的好好的,因安全升级切换域名. 1.代码和微信公众平台上的域名都修改好了,微信开发者工具中访问https的api接口正常: 2.微信开发者工具无论是否打开了[不校验合法域名.web- ...
- [小程序]微信小程序获取input并发送网络请求
1. 获取输入框数据 wxml中的input上增加bindinput属性,和方法值 在js部分定义与之对应的方法,只要在输入的时候,数据就会绑定调用到该方法,存入data属性变量中 2. 调用get请 ...
最新文章
- 2014 百度之星题解 1002 - Disk Schedule
- html动画效果开源代码,8款强大的CSS3/HTML5动画及应用源码
- 如何确保TCP协议传输稳定可靠?
- html 超链接打开Excel,计算机打开Excel超链接时提示的解决方案
- Android应用内加载pdf的方法?
- TCP连接——三次握手和四次断开
- python读取grib2数据_python读取grib grib2气象数据
- python invalid start byte_Python 3.6中 'utf-8' codec can't decode byte invalid start byte?汗血宝马...
- Bailian4122 切割回文【DP】
- 计算机桌面空白图标如何删除,桌面上有两个i空白文件的图标删不掉怎么办急急急...
- Android校招复习资料整理
- 前端实现炫酷动效_创建炫酷 CSS 背景效果的 10 个代码片段
- 智能车浅谈——过程通道篇
- uni 页面加载完毕_uniapp小程序如何等待数据回来才加载页面?
- 我的世界制作服务器地图,我的世界1.7地图制作必看心得 教你怎么做地图
- 编写程序实现乐手弹奏乐器。乐手可以弹奏不同的乐器从而发出不同的声音。可以弹奏的乐器包括二胡、钢琴和琵琶。
- 平方数列、立方数列求和公式与推导
- 【信息奥赛题解】昆虫繁殖(详细分析题解 C++ 代码)
- linux中fq格式转fa,fasta/fq文件处理万能工具——Seqkit学习记录
- 初学安卓之二维码的简单实现,android开发网上购物app
热门文章
- C# 约瑟夫环 用数组实现
- 如何使用markdown编辑器?官方文档在此
- 看动画学算法之:排序-基数排序
- Libra白皮书解读
- Leet Code OJ 171. Excel Sheet Column Number [Difficulty: Easy]
- Hibernate中使用未映射为主键的“id”字段进行查询的场景分析
- Spring学习-- SpEL表达式
- Linux网络编程 之 IO多路复用poll(九)
- C++ unordered_map 使用详解(含C++20新特性)
- leetcode -- 279. Perfect Squares