用的触屏版新浪微博的登录地址:http://m.weibo.cn/login
需要用Firefox浏览器,要安装HttpFox工具,当然你也可以用其他插件,只要能分析HTTP协议即可。
用HttpFox分析登录过程中的头信息如下:
当然这些头信息不用全部设置,只需在代码中设置一些必要的信息:
post.setRequestHeader("User-Agent","Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.77 Safari/537.1");
post.setRequestHeader("Referer", "http://weibo.com/");
post.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
post.setRequestHeader("Referer",http://m.weibo.cn/login?ns=1&backURL=http%3A%2F%2Fm.weibo.cn%2F&backTitle=%D0%C2%C0%CB%CE%A2%B2%A9&vt=4);
下面我们再来看一下Post Data,请求提交时需要的参数:
用户名和密码都是明文,这就比较简单了。在代码中设置相关参数:
post.setParameter("uname",username );
post.setParameter("pwd", pwd);
post.setParameter("check", "1");
post.setParameter("autoLogin", "1");
post.setParameter("backURL", "http://m.weibo.cn/");
post.setParameter("backTitle", "新浪微博");
登录成功后,会被重定向到http://m.weibo.cn/,可以在content里面查看响应结果。
完整代码如下:
/*****
* gsid是一个会话id,登录成功后做其他操作带着这个gsid即可。如转发微博
* @param username 微博用户名
* @param pwd 微博密码
* @return
*/
public static String getGsid(String username,String pwd)
{
String gsid = "";
PostMethod post = null;
try
{
post = new PostMethod("http://m.weibo.cn/login");
post.setRequestHeader("User-Agent","Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.77 Safari/537.1");
post.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
post.setRequestHeader("Referer","http://m.weibo.cn/login?ns=1&backURL=http%3A%2F%2Fm.weibo.cn%2F&backTitle=%D0%C2%C0%CB%CE%A2%B2%A9&vt=4");
post.setParameter("uname",username );
post.setParameter("pwd", pwd);
post.setParameter("check", "1");
post.setParameter("autoLogin", "1");
post.setParameter("backURL", "http://m.weibo.cn/");
post.setParameter("backTitle", "新浪微博");
DefaultHttpParams.getDefaultParams().setParameter("http.protocol.cookie-policy", CookiePolicy.BROWSER_COMPATIBILITY);
HttpClient client = new HttpClient();
int status = client.executeMethod(post);
System.out.println("status=" + status);
Cookie[] cookies = client.getState().getCookies();
String s = new String(post.getResponseBody(), "UTF-8");
System.out.println("s===" + s);
for (int i = 0; i < cookies.length; i++)
{
System.out.println(cookies[i].getName() + ":"
+ cookies[i].getValue());
gsid = cookies[i].getValue();
}
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
post.releaseConnection();
}
return gsid;
}
发送微博和转发微博分析过程都差不多,但对于转发链接需要解码一下,具体内容下一次我们再具体来分析。
以前一直在blogjava混,现在正式转战csdn了,有什么好的想法大家一起交流。
分享到:
相关推荐
httpclient4模拟登陆新浪微博 最新版
NULL 博文链接:https://zrzking.iteye.com/blog/1946063
2016年4月7最新新浪微博模拟登录HttpClient4.5.2
此资源为新浪微博和腾讯微博的HttpClient4模拟登录的代码Sina.java为新浪的,TencentClient.java为腾讯的。
* 测试新浪微博API * @author syn * @date 2010/12/22 */ public class TestActivity extends Activity { private static final String BASE_URL = "http://api.t.sina.com.cn/"; //API接口 private static final ...
httpclient方式登陆,以及发布微博
HttpClient模拟登录实例,模拟登录网站,获取用户信息,登录后数据,带验证码登录,带解析HTML实例。
模拟登录 不提供用户名密码
用HttpClient实现了 网易相册的登录
这是一个经典的java爬虫例子:使用httpclient4.4登录豆瓣,发表说说 代码中即有cookie的自动管理,又有验证码的处理。 许多人只会简单的爬,但是有的网站需要登录就不会弄了,再或者有的网站有验证码也不知道如何...
NULL 博文链接:https://shaozhen.iteye.com/blog/950472
httpclient测试登录并提交表单功能 一个小实例程序 很经典
使用HttpClient登录网易邮箱 博文链接:https://bps.iteye.com/blog/136231
新浪微博爬虫,采用Java语言开发,基于HTTPClient 4.0,采用MySQL存储爬取数据,支持多进程并发执行。功能包括:爬取微博、评论、转发、关注列表(层次)。根据数据需求,持续更新....zip可以用于毕业设计(项目源码...
使用 HttpClient 和 HtmlParser 实现简易网络爬虫
NULL 博文链接:https://shaozhen.iteye.com/blog/946680
资源名字:基于java+Jsoup+HttpClient的网络爬虫技术的网络新闻分析系统设计与实现(源码+文档)_MySQL_网络爬虫_数据挖掘.zip 资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百...
最新版httpclient自动登录人人代码,内含有代码,httpclient4.3包,只需要修改账户和密码,就可以登陆
使用HttpClient发送请求、接收响应很简单,一般需要如下几步即可。 1. 创建HttpClient对象。 2. 创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建...
使用HttpClient4.5实现https请求忽略SSL证书验证工具类