`
NealCai
  • 浏览: 144478 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

HttpClient模拟登陆的简单例子

    博客分类:
  • java
阅读更多
package com;

import java.io.BufferedReader;
import java.io.InputStreamReader;

import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.cookie.CookieSpec;
import org.apache.commons.httpclient.methods.PostMethod;

public class FormLoginDemo {
	static final String LOGON_SITE = "127.0.0.1";
	static final int LOGON_PORT = 8080;

	public static void main(String[] args) throws Exception {
		HttpClient client = new HttpClient();
		client.getHostConfiguration().setHost(LOGON_SITE, LOGON_PORT);

		// 模拟登录页面 login.jsp->main.jsp
		PostMethod post = new PostMethod("/prcs/loginAction.do?method=login");
		NameValuePair name = new NameValuePair("userId", "admin");
		NameValuePair pass = new NameValuePair("password", "password");
		NameValuePair sbx = new NameValuePair("Submit.x", "0");
		NameValuePair sby = new NameValuePair("Submit.y", "0");
		NameValuePair sb = new NameValuePair("Submit", "Save");
		post.setRequestBody(new NameValuePair[] { name, pass,sbx,sby,sb });
		int status = client.executeMethod(post);
		
		BufferedReader reader = new BufferedReader(new InputStreamReader(post.getResponseBodyAsStream()));  
		StringBuffer stringBuffer = new StringBuffer();  
		String str = "";  
		while((str = reader.readLine())!=null){  
		    stringBuffer.append(str);  
		}  
		String ts = stringBuffer.toString();  
		
		
		System.out.println(ts);
		post.releaseConnection();

		// 查看 cookie 信息
		CookieSpec cookiespec = CookiePolicy.getDefaultSpec();
		Cookie[] cookies = cookiespec.match(LOGON_SITE, LOGON_PORT, "/", false,
				client.getState().getCookies());
		if (cookies.length == 0) {
			System.out.println("None");
		} else {
			for (int i = 0; i < cookies.length; i++) {
				System.out.println(cookies[i].toString());
			}
		}

		// 登陆之后访问的页面 main2.jsp
		PostMethod get = new PostMethod("/prcs/productionAction.do?method=prodSearchInit");
		client.executeMethod(get);
		System.out.println(get.getResponseBodyAsString());
		get.releaseConnection();
	}
}


比较要注意的是NameValuePair的参数最好用Firebug或者Fiddler抓取下表单,看下具体的参数。
这是一个最简单的Httpclient的例子,接下来会写一篇过代理并且访问HTTPS的例子。

0
0
分享到:
评论

相关推荐

    httpclient模拟登录实例

    HttpClient提供了丰富的接口和策略类,使得这些操作变得相对简单。 通过阅读和理解HttpClient的源码,开发者可以更好地了解其内部机制,从而优化性能、处理异常、实现自定义功能。同时,HttpClient与其他工具如...

    HttpClient模拟登陆

    在阅读博文《HttpClient模拟登陆》时,可以深入学习如何解决这些具体问题,并查看示例代码以获得更详细的实现细节。 标签“源码”意味着你需要关注底层的工作原理,而“工具”标签则暗示HttpClient作为一个实用工具...

    HttpClient模拟登陆方正系统

    在本文中,我们将深入探讨如何使用HttpClient来模拟登录方正系统,以及在此基础上开发类似“课程格子”这样的应用。 一、HttpClient简介 HttpClient是一个支持HTTP协议的客户端编程工具,支持HTTP/1.1及其后续版本...

    httpclient4之百度模拟登陆,回复与58同城自动登陆

    本主题将深入探讨如何使用HttpClient4库进行百度和58同城的模拟登陆操作。HttpClient4是一个强大的Java库,它提供了丰富的功能来执行HTTP请求,非常适合进行网页交互。 首先,我们来了解HttpClient4的基本用法。...

    httpclient 模拟登陆代码和jar包

    在这个场景下,我们关注的是如何使用`HttpClient`进行模拟登录。 模拟登录通常是开发自动化测试、爬虫或集成服务时必要的步骤,它允许程序模仿用户在网页上的登录行为。以下是一份使用`HttpClient`进行模拟登录的...

    新浪,腾讯微博HttpClient4模拟登陆

    1. **创建HttpClient实例**:HttpClient是整个模拟登录的核心,通过`HttpClientBuilder`构建器创建一个HttpClient对象,以便发起HTTP请求。 2. **设置Cookie管理器**:为了处理登录过程中产生的Cookie,需要配置`...

    HttpClient4.3模拟登陆新版12306

    下面是一个简单的HttpClient 4.3模拟登录12306的代码片段,展示如何构造和发送请求: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet getMethod = new HttpGet(...

    httpUtil httpclient 登陆携带cookie访问下一个连接

    在这个场景中,我们关注的是如何使用`httpclient`进行模拟登录并携带cookie来访问后续的URL。这个过程通常涉及到处理session和身份验证,对于开发需要登录功能的Web应用或自动化测试脚本尤其有用。 首先,`...

    httpclient4.3登陆人人

    标题中的“httpclient4.3登陆人人”指的是使用Apache HttpClient 4.3版本实现对人人网的自动登录功能。HttpClient是一个流行的开源Java库,它允许开发者执行HTTP请求并处理响应,广泛应用于网络爬虫、自动化测试和...

    httpclient模拟登陆具体实现(使用js设置cookie)

    根据提供的文件信息,我们可以详细探讨关于HttpClient模拟登录的实现方法,特别是在使用JavaScript设置Cookie的场景下。以下是一些关键知识点: ### HTTP客户端(HttpClient) - **HttpClient的基本概念:** ...

    httpclient3 自动登陆淘宝, 开心网

    标题中的“httpclient3 自动登陆淘宝, 开心网”指的是使用Apache HttpClient 3.x库来实现自动化登录淘宝和开心网的功能。HttpClient是一个强大的HTTP客户端API,它允许开发者模拟浏览器行为,发送HTTP请求并接收...

    爬虫模拟登陆、爬虫模拟登陆

    以下是一个简单的Java HttpClient模拟登录的代码片段: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet getMethod = new HttpGet("http://example.com/login"); ...

    Hsk.rar_hsk_httpClient登陆_自动登陆网页

    1. **初始化HttpClient对象**:首先,我们需要创建一个HttpClient实例,这是所有HTTP操作的基础。 2. **构建HttpPost或HttpGet请求**:根据登录页面的需求,我们可能需要POST数据(通常包含用户名和密码)或者GET...

    HttpClient以及获取页面内容应用

    // 创建默认的httpClient实例. CloseableHttpClient httpclient = HttpClients.createDefault(); // 创建httppost HttpPost httppost = new HttpPost(...

    模拟登陆新浪微博

    在这个场景中,我们关注的是如何使用HTTPClient 4库来模拟登录新浪微博。首先,我们需要理解HTTPClient库的基本概念。 HTTPClient是一个强大的Java库,用于处理HTTP请求和响应。它提供了丰富的功能,包括支持HTTPS...

    C# 模拟网页登陆

    1. **创建HttpClient实例**:首先,我们需要实例化一个`HttpClient`对象,这将作为我们发送请求的客户端。 ```csharp HttpClient client = new HttpClient(); ``` 2. **设置请求头**:对于某些网站,可能需要设置...

    模拟登陆百度的Java实现

    这篇博客“模拟登陆百度的Java实现”提供了一个使用Java编程语言来模拟登录百度网站的实例。以下将详细介绍这个过程中的关键知识点。 首先,我们需要理解HTTP协议的基础,特别是GET和POST请求。在登录过程中,...

    c#模拟登录

    这里的`LoginService`类封装了登录操作,它构造了一个`HttpClient`实例,并使用`PostAsync`方法发送POST请求。`FormUrlEncodedContent`用于构建HTTP请求体,包含用户名和密码。你需要将"登录接口URL"替换为实际的...

    C# WINFORM网站模拟登陆带验证码源码

    总的来说,这个项目涵盖了C#编程、WinForms应用开发、网络请求、验证码处理等多个技术点,对于学习和实践Web自动化以及C#编程的开发者来说,是一个有价值的实例。通过学习和分析这个源码,可以提升在实际项目中的...

    java实现模拟登录网站最全的资料

    7. **论坛资源**:`ITeye论坛.mht`文件可能包含了关于HttpClient的使用讨论,如`HTTPClient模拟登陆人人网`,这通常提供了实际项目中的示例和遇到的问题解决方案。 8. **MHT文件**:MHT是一种单一文件的网页存档...

Global site tag (gtag.js) - Google Analytics