`
codeone
  • 浏览: 46360 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HttpURLConnection模拟用户登录

    博客分类:
  • java
 
阅读更多

首先创建2个servlet,一个负责用户登录并将username保存在session中,另一个负责从session中获取username并返回给客户端.

 

LoginServlet:

 

public class LoginServlet extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req,resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		PrintWriter out = resp.getWriter();
		req.getSession().setAttribute("username","zhangsan");
		out.print("OK");
		out.flush();
		out.close();
	}
}

 

QueryServlet:

 

public class QueryServlet extends HttpServlet{
	@Override
	public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		 doPost(req,resp);
	}

	@Override
	public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		PrintWriter out = resp.getWriter();
		 if(req.getSession()==null){
			 out.print("sessioni is null");
		 }
		 else{
			 out.print("userid : "+req.getSession().getAttribute("username"));
		 }
		out.flush();
		out.close();
	}
}

 

HttpURLConnection模拟用户登录的代码如下:

 

public class Test1 {

	private String sessionId;

	private String sessionUrl = "http://127.0.0.1:8088/session/servlet/login";

	private String queryUrl = "http://127.0.0.1:8088/session/servlet/query";

	public void login() throws Exception {
		URL url = new URL(sessionUrl);
		HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
		InputStream inputStream = urlConnection.getInputStream();
		String session_value = urlConnection.getHeaderField("Set-Cookie");
		sessionId = session_value.split(";")[0];
		byte[] byte_result = new byte[inputStream.available()];
		inputStream.read(byte_result);
		String result = new String(byte_result);
		System.out.println("result = " + result);
		inputStream.close();
	}

	public void queryUser() throws Exception {
		URL url = new URL(queryUrl);
		HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
		urlConnection.setRequestProperty("Cookie", sessionId);
		InputStream inputStream = urlConnection.getInputStream();
		byte[] byte_result = new byte[inputStream.available()];
		inputStream.read(byte_result);
		String result = new String(byte_result);
		System.out.println("result = " + result);
		inputStream.close();
	}

	public static void main(String[] args) throws Exception {

		Test1 test1 = new Test1();
		test1.login();
		test1.queryUser();

	}
}
 

 

分享到:
评论

相关推荐

    java 模拟登录(含验证码)

    模拟登录是指通过编程方式自动登录到一个网站,通常是通过发送HTTP请求,模拟用户填写表单并提交的过程。在这个场景中,我们关注的是POST请求,因为大多数登录表单会通过POST方法提交数据,以确保数据的安全性。 ...

    Java模拟登录百度Demo

    6. **模拟浏览器行为**: 为了使模拟登录更接近真实用户,我们可能需要复制浏览器的一些行为,比如设置User-Agent,处理Referer字段,以及处理其他可能影响登录的HTTP头。 7. **持久化会话**: 如果登录成功,我们...

    Java 模拟cookie登陆简单操作示例

    我们可以使用 Java 语言来发送 HTTP 请求,并将 Cookie 信息写入到 HTTP 头部中,以便模拟用户的登陆行为。 Java 模拟 Cookie 登陆的实现 下面是一个简单的 Java 模拟 Cookie 登陆的示例代码: ```java import ...

    模拟登录拍拍

    模拟登录是指通过编程方式自动执行登录过程,通常是通过发送HTTP请求到服务器,模拟用户填写表单并提交。在这个项目中,主要涉及的技术是HTTP协议和POST请求。 1. **HTTP协议**:HTTP(超文本传输协议)是互联网上...

    java实现多次HttpURLConnection共享session

    在Java编程中,HTTPURLConnection是Java标准库提供的一种用于处理HTTP连接的类...通过这种方式,即使没有浏览器环境,也能模拟登录状态,爬取登录后的内容。同时,注意处理各种可能的异常情况,确保网络请求的健壮性。

    模拟百度登录

    在信息技术领域,模拟登录是一种常见的技术手段,它允许开发者或自动化测试工具模拟用户登录到特定网站,以便进行数据抓取、功能测试或自动化任务执行。本篇将深入探讨如何使用Java语言来实现模拟百度登录的过程。 ...

    JAVA 模拟网页是登录

    3. **构建POST请求**:在获取到表单数据后,我们需要构建一个POST请求来模拟用户填写表单并提交的过程。这通常涉及到创建`HttpURLConnection`或使用第三方库如Apache HttpClient或OkHttp。在请求头中设置"Content-...

    Android(Java) 模拟登录知乎并抓取用户信息

    在本文中,我们将深入探讨如何使用Java在Android平台上实现模拟登录知乎并抓取用户信息的过程。这个过程涉及网络请求、HTTP协议、数据解析以及JSON理解等多个关键知识点。 首先,我们需要了解的是Android的网络访问...

    java网络爬虫模拟登入抓取数据

    5. **发送登录请求**:执行POST请求,模拟用户提交登录表单。 6. **处理登录响应**:接收服务器返回的响应,检查是否登录成功。这可以通过检查重定向URL、特定的HTML内容或Cookie来判断。 7. **后续抓取**:如果...

    Java模拟登录新浪微博

    模拟登录是网络爬虫或自动化测试中常见的技术,它允许程序以用户的身份与网站交互。对于Java开发者来说,理解这一过程对于构建自动化工具或者数据抓取项目是至关重要的。 首先,我们需要了解HTTP协议的基础知识,...

    java模拟微信web登录平台

    在本文中,我们将深入探讨如何使用Java来模拟微信Web登录平台,从而实现微信机器人的功能。微信机器人可以自动处理微信消息、执行特定任务,如自动回复、群管理等,这在许多场景下都非常实用。 首先,我们需要理解...

    java最新完美实现模拟登录QQ登录QQ空间获取说说

    - 模拟登录成功:如果登录成功,我们可以使用保存的Cookie继续后续的请求,模拟用户已登录的状态。 6. **获取QQ空间说说**: - 分析页面结构:登录后,我们需要分析QQ空间的HTML页面,找到展示说说的部分。Jsoup...

    java爬虫模拟登陆源码

    2. **构造请求**:使用Java的HttpURLConnection或HttpClient库,构造一个与登录页面相同的POST请求。设置请求头(如User-Agent),添加必要的Cookie信息,以及填充用户名和密码。 3. **发送请求并处理响应**:发送...

    模拟登录验证码

    模拟登录是指通过编程方式模拟用户在浏览器中进行登录操作,这通常涉及到向服务器发送登录请求,携带用户名、密码等认证信息。在这个过程中,我们需要了解HTTP协议,尤其是POST请求的使用,因为大多数登录操作是通过...

    JAVA模拟微信登录,获取粉丝, 主动推送信息

    在本文中,我们将深入探讨如何使用Java来模拟微信登录并实现获取粉丝以及主动推送信息的功能。这个主题涉及到多个Java编程和微信开发的知识点,包括网络通信、JSON解析、OAuth认证等。 首先,我们要理解微信API的...

    模拟登陆百度

    首先,理解模拟登录的基本原理:通过编程的方式,模拟用户在浏览器上填写表单、点击登录按钮的过程,向服务器发送登录请求并接收响应。在Java中,我们可以使用HttpURLConnection、HttpClient或Apache的OkHttp等库来...

    android模拟登录学校教务网站的小demo

    在Android平台上,模拟登录学校教务网站是一项常见的需求,尤其对于开发者来说,它涉及到网络通信、数据解析以及可能的图像处理等技术。本项目“android模拟登录学校教务网站的小demo”提供了一个实用的示例,帮助...

    java模拟登陆新浪微博(非API)

    6. **实现会话维持**:通过保存和在每个请求中附带cookies,我们可以模拟用户已登录的状态,进行如浏览、发帖等操作。 7. **使用Jsoup解析网页**:在Java中,`Jsoup`库可以帮助我们解析登录后的HTML页面,查找我们...

    Android模拟登录评论CSDN

    在Android开发中,模拟登录评论CSDN是一个常见的任务,主要涉及到网络请求、JSON解析以及UI交互等技术。本文将详细讲解如何实现这一功能,并结合`WellTestDemo`项目进行阐述。 首先,我们需要理解Android应用的基本...

    Android模拟登录知乎

    因此,我们需要了解JSON并使用Gson、Jackson或org.json等库解析JSON,提取出重要的Cookie信息,例如session_id和cookie_token,这些都是保持用户登录状态的关键。 关于Cookie管理,Android系统并没有内置的Cookie...

Global site tag (gtag.js) - Google Analytics