httpclient 163邮箱登陆

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

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

public class NewTest {

/**
* @param args
* @throws IOException
* @throws HttpException
*/
public static void main(String[] args) throws Exception {
HttpClient client = new HttpClient();
///第一次登陆/
List<NameValuePair> data = new ArrayList<NameValuePair>();
data.add(new NameValuePair("verifycookie", "0"));
data.add(new NameValuePair("product", "mail163"));
data.add(new NameValuePair("username", "zhangbaoxin231@163.com"));
data.add(new NameValuePair("password", "3266472"));
PostMethod httpPost = new PostMethod(

"http://reg.163.com/login.jsp?type=1&url=http://entry.mail.163.com/coremail/fcg/ntesdoor2?lightweight%3D1%26verifycookie%3D1%26language%3D-1%26style%3D-1");
httpPost.setRequestBody(data
.toArray(new NameValuePair[data.size()]));
// httpPost.getParams().setParameter("http.protocol.cookie-policy",CookiePolicy.BROWSER_COMPATIBILITY);
httpPost.setFollowRedirects(false);
client.executeMethod(httpPost);
BufferedReader in=new BufferedReader(new InputStreamReader(httpPost.getResponseBodyAsStream(),"UTF-8"));
StringBuffer buffer=new StringBuffer();
String line;
while ((line = in.readLine()) != null) {
buffer.append(line);
}
StringBuffer bu1 = new StringBuffer();
for(Cookie c : client.getState().getCookies())
{
bu1.append(c.getName());
bu1.append("=");
bu1.append(c.getValue());
bu1.append("\n");
}
System.err.println(bu1.toString());
httpPost.releaseConnection();

int a = buffer.indexOf("window.location.replace(\"");
int b = buffer.indexOf("\"",a+25);
System.err.println(buffer.toString().substring(a+25,b));



PostMethod httpPost1 = new PostMethod(buffer.toString().substring(a+25,b));
client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);

//一定要有,否则会生成多个Cookie header送给web server
client.getParams().setParameter("http.protocol.single-cookie-header",true);
client.getParams().setParameter("http.protocol.content-charset","gb2312");
client.executeMethod(httpPost1);

StringBuffer bu2 = new StringBuffer();
for(Cookie c : client.getState().getCookies())
{
bu2.append(c.getName());
bu2.append("=");
bu2.append(c.getValue());
bu2.append("\n");
}
System.err.println(bu2.toString());
BufferedReader in2=new BufferedReader(new InputStreamReader(httpPost1.getResponseBodyAsStream()));
StringBuffer buffer2=new StringBuffer();
String line2;
while ((line2 = in2.readLine()) != null) {
buffer2.append(line2);
}
System.out.println(buffer2.toString().trim());
String content = httpPost1.getResponseHeader("Location").getValue();
String sessId = null;
sessId = content.substring(content.indexOf("sid=")+4);
System.err.println(httpPost1.getResponseHeader("Location").getValue());
String trueUrlString = content.substring(0,content.indexOf("."))+ ".mail.163.com/js3/s?sid="+ sessId+"&func=global:sequential";
System.err.println(trueUrlString);

/

PostMethod pm1 = new PostMethod(trueUrlString);

pm1.setRequestEntity(new StringRequestEntity("<?xml version=\"1.0\"?><object><array name=\"items\"><object><string name=\"func\">pab:searchContacts</string><object name=\"var\"><array name=\"order\"><object><string name=\"field\">FN</string><boolean name=\"ignoreCase\">true</boolean></object></array></object></object><object><string name=\"func\">user:getSignatures</string></object><object><string name=\"func\">pab:getAllGroups</string></object></array></object>","application/xml","UTF-8"));
//pm1.getParams().setParameter("http.protocol.cookie-policy",CookiePolicy.BROWSER_COMPATIBILITY);
// pm1.setRequestHeader("Cookie", cookies.toString());
client.executeMethod(pm1);

BufferedReader in1=new BufferedReader(new InputStreamReader(pm1.getResponseBodyAsStream()));
StringBuffer buffer1=new StringBuffer();
String line1;
while ((line1 = in1.readLine()) != null) {
buffer1.append(line1);
}
StringBuffer bu = new StringBuffer();
for(Cookie c : client.getState().getCookies())
{
bu.append(c.getName());
bu.append("=");
bu.append(c.getValue());
bu.append("\n");
}
System.err.println(bu.toString());
System.err.println("66"+buffer1.toString());










}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值