import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.Header;
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 Test
{
static final String LOGON_SITE = "http://mail.163.com";
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://reg.163.com/logins.jsp?type=1&url=http://fm163.163.com/coremail/fcg/ntesdoor2?lightweight=1&verifycookie=1&language=-1&style=16");
NameValuePair username = new NameValuePair("username", "你的用户名@163.com");
NameValuePair password = new NameValuePair("password", "你的密码");
post.setRequestBody(new NameValuePair[] { username, password });
client.executeMethod(post);
String responseString = new String(post.getResponseBodyAsString().getBytes(
"gbk"));
System.out
.println("=========================登录页面===========================");
System.out.println(responseString);
Cookie[] cookies = client.getState().getCookies();
client.getState().addCookies(cookies);
post.releaseConnection();
int startPos = responseString
.indexOf("http://reg.youdao.com/crossdomain.jsp?username=");
int endPos = responseString.indexOf("\"", startPos + 1);
String newUrl = responseString.substring(startPos, endPos);
System.out
.println("===========================第一次页面转向============================");
System.out.println(newUrl);
//以get方式请求跳转页面
GetMethod get = new GetMethod(newUrl);
get.setRequestHeader("Cookie", cookies.toString());
client.executeMethod(get);
responseString = new String(get.getResponseBodyAsString().getBytes("gbk"));
//向控制台打印登陆后页面的html
System.out
.println("==========================第一次转向后的页面==================================");
System.out.println(responseString);
get.releaseConnection();
startPos = responseString.indexOf("http://fm163.163");
endPos = responseString.indexOf("\"", startPos + 1);
newUrl = responseString.substring(startPos, endPos);
System.out
.println("=============================第二次页面转向=======================================");
System.out.println(newUrl);
get = new GetMethod(newUrl);
get.setRequestHeader("Cookie", cookies.toString());
client.executeMethod(get);
responseString = new String(get.getResponseBodyAsString().getBytes("gbk"));
System.out.println("==========================第二次转向后的页面=============================");
System.out.println(responseString);
get.releaseConnection();
}
}
分享到:
相关推荐
HttpClient之Https应用实例~ 包含: HttpClient 使用代理访问Https HttpClient 信任所有主机-对于任何证书都不做检查 HttpClient 允许所有证书的校验(包括过期证书)
Java,通过 httpclient 获取 cookie 模拟登录 ,登录后携带cookie发起下一个请求
HttpClient用法,实例 HttpClient用法,实例 HttpClient用法,实例 HttpClient用法,实例
httpClient4.3.6 HttpClient使用详解 httpClient中文帮助文档
httpclient,jar,实例,例子,post,get
httpclient4之百度模拟登陆,回复与58同城自动登陆
本人做得一个httpClient的 网络传输的协议,由客户端和服务端,直接可以用
NULL 博文链接:https://zhouxianglh.iteye.com/blog/832696
NULL 博文链接:https://jilongliang.iteye.com/blog/1275107
httpclient.jar包及其POST方法使用例子
最新版httpclient自动登录人人代码,内含有代码,httpclient4.3包,只需要修改账户和密码,就可以登陆
比较全的httpclient入门介绍和例子代码
自身项目内的HttpClient4.5全部jar包+简单实用实例。
httpclient-4.0-alpha2.jar commons-codec-1.3.jar commons-httpclient-3.1.jar httpclient开发所有的包以及实例
这是一个android的HttpClient简单demo,实现了post与get两种方式,包括完整的客户端和服务器端程序,数据库采用的是MySql数据库,数据库部分请用户自己完成,都是最简单的,我已经测试通过,这是我一天的成果,参考...
HttpClient框架所需的jar包和一个简单实例, HttpClient框架所需的jar包和一个简单实例
关于HttpClient的小例子,很简单,附件为项目源码,直接导入执行。注意包含了配置信息。
完整的怎么自动登陆加密网页的源码.里面有很详细的httpclient应用说明
自己做的httpClient实例,写的比较多刚接触的可以看看
HttpClient模拟登录实例,模拟登录网站,获取用户信息,登录后数据,带验证码登录,带解析HTML实例。