设为首页 加入收藏

TOP

Java应用程序模拟向Servlet发送POST请求
2014-11-24 13:04:50 来源: 作者: 【 】 浏览:0
Tags:Java 应用程序 模拟 Servlet 发送 POST 请求

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”这样的普通信息,同时还要上传文件,事情就复杂得多。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android 重要的组件 下一篇Android Wifi驱动--底层

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Sphinx : 高性能SQL (2025-12-24 10:18:11)
·Pandas 性能优化 - (2025-12-24 10:18:08)
·MySQL 索引 - 菜鸟教 (2025-12-24 10:18:06)
·Shell 基本运算符 - (2025-12-24 09:52:56)
·Shell 函数 | 菜鸟教 (2025-12-24 09:52:54)