700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java微博模拟登陆_用httpclient模拟浏览器 登录新浪微博

java微博模拟登陆_用httpclient模拟浏览器 登录新浪微博

时间:2024-03-09 06:45:11

相关推荐

java微博模拟登陆_用httpclient模拟浏览器 登录新浪微博

①用Fiddler2追踪登录时的post请求,发现需要以下参数:

check

uname

backURL

autoLogin

pwd

其中,backURL="/",check=“1”,autoLogin可默认为1

于是,只剩

uname和

pwd

②创建一个HttpClient

privateDefaultHttpClienthttpclient=newDefaultHttpClient();

③创建一个

HttpPost

HttpPosthttpost=newHttpPost(CommonConst.loginUrl);

④伪装httpost,骗过服务器

/***pretendtobeabrowserquietly*/privatevoidsetPostHeader(HttpPostpost){

post.setHeader(CommonConst.UserAgent,CommonConst.HttpAgent);

post.setHeader("Origin",CommonConst.weiboUrl);

post.setHeader("Cache-Control","max-age=0");

post.setHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");

post.setHeader("Accept-Encoding","gzip,deflate,sdch");

post.setHeader("Accept-Language","en-US,en;q=0.8");

post.setHeader("Accept-Charset","ISO-8859-1,utf-8;q=0.7,*;q=0.3");

post.setHeader("Accept-Encoding","gzip,deflate,sdch");

post.setHeader("Referer",CommonConst.loginUrl);

}

⑤创建NameValuePair

Listnvps=newArrayList();

nvps.add(newBasicNameValuePair("check",this.check));

nvps.add(newBasicNameValuePair("uname",this.uname));

nvps.add(newBasicNameValuePair("backURL",this.backURL));

nvps.add(newBasicNameValuePair("autoLogin",this.autoLogin));

nvps.add(newBasicNameValuePair("pwd",this.pwd));

⑥用setEntity方法,给httpost设置相关参数

httpost.setEntity(newUrlEncodedFormEntity(nvps,HTTP.UTF_8));

⑦向相应的host上提交post请求

HttpHosttargetHost=newHttpHost(CommonConst.host);

response=httpclient.execute(targetHost,httpost);

login代码:

privatebooleanlogin(){//httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy);HttpPosthttpost=newHttpPost(CommonConst.loginUrl);

setPostHeader(httpost);//AlltheparametersposttothewebsiteListnvps=newArrayList();

nvps.add(newBasicNameValuePair("check",this.check));

nvps.add(newBasicNameValuePair("uname",this.uname));

nvps.add(newBasicNameValuePair("backURL",this.backURL));

nvps.add(newBasicNameValuePair("autoLogin",this.autoLogin));

nvps.add(newBasicNameValuePair("pwd",this.pwd));try{

httpost.setEntity(newUrlEncodedFormEntity(nvps,HTTP.UTF_8));

HttpHosttargetHost=newHttpHost(CommonConst.host);

response=httpclient.execute(targetHost,httpost);

}catch(Exceptione){

e.printStackTrace();returnfalse;

}finally{

httpost.abort();

}returntrue;

}

附CommonConst.java

packagecom.yinger;publicclassCommonConst{publicstaticStringHttpAgent="Mozilla/5.0(Macintosh;IntelMacOSX10_7_4)AppleWebKit/536.5(KHTML,likeGecko)Chrome/19.0.1084.46Safari/536.5";publicstaticStringloginUrl="/login";publicstaticStringhost="";publicstaticStringweiboUrl="";publicstaticStringUserAgent="User-Agent";}

posted on -07-11 11:59 Ying-er 阅读(5020) 评论(5) 编辑 收藏

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。