`
kop
  • 浏览: 21296 次
  • 性别: Icon_minigender_1
  • 来自: 春秋战国
最近访客 更多访客>>
社区版块
存档分类
最新评论

JAVA利用httpclient登录开心网

阅读更多
httpclient简单应用,登录开心网的例子


需要用到的java包
commons-httpclient-3.1.jar
commons-logging.jar
log4j-1.2.15.jar
commons-codec.jar


很简单,没什么好说的,直接上代码:
package httpclienttest;

import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;

public class LoginKaixin {
	private static final String LOGON_SITE = "http://www.kaixin001.com";
	private static final int LOGON_PORT = 80;
	public static void main(String[] args)throws Exception {
		HttpClient client = new HttpClient();
		client.getHostConfiguration().setHost(LOGON_SITE, LOGON_PORT);
		
		//登录页面
		PostMethod post = new PostMethod("http://www.kaixin001.com/login/login.php");
		NameValuePair ie = new NameValuePair("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)");   
		NameValuePair url = new NameValuePair("url", "/home/");
		NameValuePair username = new NameValuePair("email","xxx@163.com");
		NameValuePair password = new NameValuePair("password", "xxxxxx");
	post.setRequestBody(new NameValuePair[] { ie,url,username, password});
		client.executeMethod(post);
		System.out.println("******************************登录******************************");
		Cookie[] cookies = client.getState().getCookies();
		client.getState().addCookies(cookies);
		post.releaseConnection();
		System.out.println("******************************页面转向******************************");
		String newUrl="http://www.kaixin001.com/home/";
		System.out.println("==========Cookies============");
		int i=0;
		for(Cookie c:cookies){
			System.out.println(++i+":	"+c);
		}
		client.getState().addCookies(cookies);
		post.releaseConnection();
		GetMethod get = new GetMethod(newUrl);
		get.setRequestHeader("Cookie", cookies.toString());
		client.executeMethod(get);
		String responseString = get.getResponseBodyAsString();
		//登录后首页的内容
		System.out.println(responseString);
		get.releaseConnection();
		System.out.println("******************************组件功能******************************");
		//"http://www.kaixin001.com/!slave/index.php", "朋友买卖"
		//"http://www.kaixin001.com/!parking/index.php", "争车位"
		//"http://www.kaixin001.com/!house/index.php?_lgmode=pri", "买房子" 
		//http://www.kaixin001.com/!house/index.php?_lgmode=pri&t=49
		//"http://www.kaixin001.com/!house/garden/index.php","花园"
		//(1)进入朋友买卖****************
		System.out.println("******************************(1)进入朋友买卖******************************");
		String slave="http://www.kaixin001.com/!slave/index.php";
		get = new GetMethod(slave);
		get.setRequestHeader("Cookie", cookies.toString());
		client.executeMethod(get);
		responseString = get.getResponseBodyAsString();
		System.out.println(responseString);
		get.releaseConnection();
		//(2)进入争车位****************
		System.out.println("******************************(2)进入争车位******************************");
		String parking="http://www.kaixin001.com/!parking/index.php";
		get = new GetMethod(parking);
		get.setRequestHeader("Cookie", cookies.toString());
		client.executeMethod(get);
		responseString = get.getResponseBodyAsString();
		System.out.println(responseString);
		get.releaseConnection();
		//(3)进入买房子****************
		System.out.println("******************************(3)进入买房子*******************************");
		String house="http://www.kaixin001.com/!house/index.php?_lgmode=pri&t=49";
		get = new GetMethod(house);
		get.setRequestHeader("Cookie", cookies.toString());
		client.executeMethod(get);
		responseString = get.getResponseBodyAsString();
		System.out.println(responseString);
		get.releaseConnection();
		//(4)进入花园****************
		System.out.println("******************************(4)进入花园*******************************");
		String garden="http://www.kaixin001.com/!house/garden/index.php";
		get = new GetMethod(garden);
		get.setRequestHeader("Cookie", cookies.toString());
		client.executeMethod(get);
		responseString = get.getResponseBodyAsString();
		System.out.println(responseString);
		get.releaseConnection();
		
		
	}

}

分享到:
评论
7 楼 chenzubin 2010-04-17  
kaixin001.com是什么概念?
6 楼 highill 2010-03-30  
提取开心网的登录form,
在 html里面做一个隐藏的form,用JS就可以直接提交了
安全性方面,好像不太好 呵呵
5 楼 perfect 2010-03-30  
所有的操作 都是 基于 返回的html
成功返回的html source 肯定有 失败 没有的 tag
非常要命的方法,也是唯一的方法
4 楼 javacode23 2010-03-24  
刚刚接触这个httpclient,代码看的不是很懂,我想问一下你是怎么验证的账号密码的正确性的啊 ?  例如我有一个开心网账号是zhengque@163.com 密码是:zhengque;还有一个错误的账号:cuowu@163.com密码:cuowu,我应该如何实现判断账号的正确与否呢 ? 如果用zhengque@163.com账号登陆成功了 就输“成功登陆!”反之则输出“登录失败!”  这个该如何实现啊  望大侠能不吝赐教啊!
3 楼 sysmaid 2009-12-30  
想问一下楼主代码是否经过验证?(是否原创就不过问了~)
cookie.toString()这样明显是不对的
我用楼主的代码运行,也许是kaixin001的登陆改动过了,运行结果是time out
找了很多用httpClient登陆的例子,都大同小异,也许有什么细节没发现吧
反正我还没登陆成功过
2 楼 younggun 2009-07-19  
这些玩意用curl不就搞定了嘛
1 楼 ferreousbox 2009-07-17  
你的代码:
get.setRequestHeader("Cookie", cookies.toString()); 

唉,不说了.

而且这个步骤也没有必要,因为HttpClient会自动管理COOKIE

相关推荐

    java httpclient 模拟登录

    在"java httpclient 模拟登录"这个场景下,我们通常会用到HttpClient来模拟用户登录网站的过程,获取登录后的session信息,以便后续能够访问登录后才能看到的页面内容。以下将详细介绍如何使用Java HttpClient进行...

    Java 使用HttpClient保持SESSION状态

    下面我们将详细探讨如何在Java中使用HttpClient来实现这一目标。 首先,我们需要导入必要的Apache HttpClient库,通常包含以下依赖: ```xml <groupId>org.apache.httpcomponents <artifactId>httpclient ...

    JAVA利用HttpClient进行HTTPS接口调用

    接下来,`HttpClientUtil.java`文件可能是实现HttpClient工具类,提供一个静态方法来创建和初始化HttpClient实例。这个方法可能包含以下步骤: 1. 创建一个CloseableHttpClient实例,通常使用HttpClientBuilder构建...

    java-HttpClient学习,和解析html.zip

    java_HttpClient学习,和解析htmljava_HttpClient学习,和解析html java_HttpClient学习,和解析htmljava_HttpClient学习,和解析html java_HttpClient学习,和解析htmljava_HttpClient学习,和解析html java_...

    (完整版)JAVA利用HttpClient进行POST请求(HTTPS).doc

    "JAVA利用HttpClient进行POST请求(HTTPS)" JAVA HttpClient是Apache软件基金会提供的一个开源实现HTTP客户端的Java库,能够帮助开发者轻松地与HTTP服务器进行交互。在实际项目中,我们经常需要使用HttpClient来发送...

    java使用HttpClient通过url下载文件到本地

    在这个特定的场景中,我们利用HttpClient来从指定的URL下载文件到本地。以下是对这个主题的详细阐述: 1. **HttpClient介绍**: HttpClient是一个Java库,支持HTTP/1.1协议以及部分HTTP/2特性。它提供了一组高级...

    JAVA httpclient jar下载

    httpclient常用封装工具 doGet(String url, Map, String> param) doPost(String url, Map, String> param) doPostJson(String url, String json)

    java实现httpClient样例

    这个样例项目旨在帮助初学者理解如何在Java中使用HttpClient来与Web服务器进行交互。 在JavaHttpProject这个项目中,你可以找到以下关键知识点: 1. **HttpClient的创建**:首先,你需要创建一个HttpClient实例。...

    Java HttpClient 全部的jar包

    在Java项目中,使用HttpClient可以实现与Web服务器的高效通信。下面将详细介绍这12个jar包的作用及其在HttpClient中的功能: 1. `commons-beanutils-1.8.0.jar`: Apache Commons BeanUtils库提供了对Java Beans属性...

    java httpClient 工具类 java httpClient 工具类

    java httpClient 工具类 java httpClient 工具类 java httpClient 工具类 java httpClient 工具类 java httpClient 工具类 java httpClient 工具类 java httpClient 工具类 java httpClient 工具类 java httpClient ...

    java 中HttpClient传输xml字符串实例详解

    至此,我们已经成功地使用Java的HttpClient库将一个对象转换为XML字符串,并以二进制流的方式发送到了服务器。这个过程中涉及的关键技术包括对象到XML的转换(JAXB)、流操作(ByteArrayOutputStream和...

    Java-HttpClient帮助文档

    Java HttpClient是Apache软件基金会的Apache HTTP Components项目中的一个核心组件,它提供了一个强大的、高度可定制的客户端HTTP通信API。这个工具广泛应用于Java开发者中,用于执行HTTP请求,获取响应,处理各种...

    java httpclient

    用java实现httpclient请求的类

    Java中Httpclient需要的jar包(httpclient.jar,httpcore.jar及commons-logging.jar)

    在Java编程中,Apache HttpClient库是一个非常重要的工具,它提供了丰富的功能来执行HTTP请求,包括GET、POST等方法。这个库使得开发者能够方便地与Web服务器进行交互,处理各种HTTP协议相关的任务。在标题和描述中...

    高效池化-JAVA-HttpClient工具类

    1.高效简单池化的HttpClient工具类,提供单元测试用列。 2.支持基于SpringBoot 2.1.x的自动装载模块,引用依赖即可使用。 3.公司几十个项目都使用该工具类访问第三方的Http/Https+json协议接口。 4.经过上市公司多个...

    java实现HttpClient异步请求资源的方法

    本篇文章将详细介绍如何使用Java的HttpClient实现异步请求资源。 首先,让我们了解什么是异步请求。在同步请求中,调用一个API或发送一个HTTP请求后,程序会等待响应返回,然后继续执行后续代码。而异步请求则不同...

    java模拟淘宝登录源码

    Java模拟淘宝登录源码是一种常见的网络编程技术,主要用于自动化测试、数据抓取或者模拟用户行为。在这个场景中,我们使用的工具是HTTPClient库,这是一个强大的Java HTTP客户端应用编程接口,可以方便地处理HTTP...

    java代码-使用java解决HttpClientUtil的源代码

    java代码-使用java解决HttpClientUtil的源代码 ——学习参考资料:仅用于个人学习使用!

    用httpclient写的登录开心网

    标题中的“用httpclient写的登录开心网”表明我们将探讨如何使用Apache HttpClient库来实现对开心网的模拟登录。HttpClient是一个Java库,它提供了强大的HTTP客户端功能,包括发起HTTP请求、处理响应以及管理会话等...

    Java网络通信之HttpClient

    在实际开发中,我们常常利用HttpClient与其他服务进行交互,如API调用、数据同步等。 总之,Java中的HttpClient是一个强大且灵活的HTTP客户端工具,它使得网络通信变得更加简单。通过阅读源码和编写测试用例,我们...

Global site tag (gtag.js) - Google Analytics