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登陆163 简单例子
最新推荐文章于 2022-12-08 08:15:00 发布