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());
}
}
分享到:
相关推荐
NULL 博文链接:https://zhouxianglh.iteye.com/blog/832696
使用HttpClient登录网易邮箱 博文链接:https://bps.iteye.com/blog/136231
HttpClient模拟登录实例,模拟登录网站,获取用户信息,登录后数据,带验证码登录,带解析HTML实例。
最新版httpclient自动登录人人代码,内含有代码,httpclient4.3包,只需要修改账户和密码,就可以登陆
模拟登录 不提供用户名密码
用HttpClient实现了 网易相册的登录
httpclient
httpclient4之百度模拟登陆,回复与58同城自动登陆
此资源为新浪微博和腾讯微博的HttpClient4模拟登录的代码Sina.java为新浪的,TencentClient.java为腾讯的。
HttpClient httpClient = new HttpClient(); // 设置 Http 连接超时为5秒 httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000); /* 2 生成 GetMethod 对象并设置参数 */ GetMethod ...
httpClient完整封装获取网页信息、数据的代码+httpclient.jar
HttpClient4.3模拟登陆新版12306
httpclient测试登录并提交表单功能 一个小实例程序 很经典
httpclient-4.5所需jar包,里面包含httpclient-4.5.jar等等10个必须的开发包。 1.commons-codec-1.9.jar 2.commons-logging-1.2.jar 3.fluent-hc-4.5.jar 4.httpclient-4.5.jar 5.httpclient-cache-4.5.jar 6....
httpclient4 微信公众账号模拟登陆,网络上看到的,觉得不错上传出来,供大家一起共同分享学习。
httpclient jar包 httpclient jar包 httpclient jar包
httpclient.jar下载 包括code.jar包