`
bao231
  • 浏览: 87461 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

httpclient 模拟 gmail 登陆 获取联系人地址

阅读更多
package com.taobao.matrix.app.ao.invite;

import java.io.IOException;
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;
import org.apache.http.message.BasicNameValuePair;

public class NewTest1 {
public static void main(String[] args) throws Exception {

HttpClient client = new HttpClient();
// /////////////////////////////第一次登陆/////////////////////////////
List<NameValuePair> data = new ArrayList<NameValuePair>();
data.add(new NameValuePair("ltmpl", "yj_blanco"));
data
.add(new NameValuePair("continue",
"https://mail.google.com/mail/"));
data.add(new NameValuePair("ltmplcache", "2"));
data.add(new NameValuePair("service", "mail"));
data.add(new NameValuePair("rm", "false"));
data.add(new NameValuePair("hl", "en"));
data.add(new NameValuePair("Email", "baoxin.zhangbx"));
data.add(new NameValuePair("Passwd", ""));
data.add(new NameValuePair("rmShown", "1"));
data.add(new NameValuePair("null", "Sign in"));
// 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(
"https://www.google.com/accounts/ServiceLoginAuth");
// httpPost.setRequestBody(data.toArray(new NameValuePair[data.size()]));
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");


PostMethod httpPost1 = new PostMethod(
"https://www.google.com/accounts/ServiceLogin?service=mail&passive=true&rm=false&continue=https%3A%2F%2Fmail.google.com%2Fmail%2F%3Fui%3Dhtml%26zy%3Dl&bsv=1eic6yu9oa4y3&ss=1&scc=1&ltmpl=default&ltmplcache=2&hl=zh-CN");
client.executeMethod(httpPost1);
        String GALX = null;
StringBuffer bu1 = new StringBuffer();
for (Cookie c : client.getState().getCookies()) {
bu1.append(c.getName());
bu1.append("=");
bu1.append(c.getValue());
bu1.append("\n");
if(c.getName().equals("GALX"))
GALX = c.getValue();

}
System.out.println(bu1.toString());
httpPost.setRequestHeader("Cookie",
"__utmx=173272373.; __utmxx=173272373.; __utma=173272373.277235200.1284868629.1284868629.1286418541.2;" +
" __utmz=173272373.1284868629.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); " +
"GoogleAccountsLocale_session=zh_CN; GALX="+GALX+"; PREF=ID=ec39501eba0ce0e3:U=d0ecc3b0a29bd9a5:TM=1284451856:LM=1284877014:S=VnxXUxRIJxO4dHoM; NID=39=YFRCbJct1WhHp1IRvhz5skCskZ6dW82Ave_-EoBrEymXm_mzJQ8VVVJSfomVxZgFG5TcGaDzZUMs1TiH7fo9VGaxRZ1ftHpUyQkgceVLYTMyugnbIRDQhNL_yKOeqEqH; TZ=-480; GMAIL_RTT=280; GMAIL_LOGIN=T1286846861638/1286846861638/1286847020950");
httpPost.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
httpPost.setRequestEntity(new StringRequestEntity("ltmpl=default" +
"&ltmplcache=2" +
"&continue=https%3A%2F%2Fmail.google.com%2Fmail%2F%3F" +
"&service=mail" +
"&rm=false" +
// "&dsh=-1094667995636017014" +
"&ltmpl=default" +
"&hl=zh-CN" +
"&ltmpl=default" +
"&scc=1" +
"&ss=1" +
"&timeStmp=" +
"&secTok=" +
"&GALX="+ GALX+
"&Email=username" +
"&Passwd=pass" +
"&rmShown=1" +
"&signIn=%E7%99%BB%E5%BD%95" +
"&asts=","application/xml","UTF-8"));
client.executeMethod(httpPost);

// 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());
//System.err.println(httpPost.getResponseBodyAsString());

//

PostMethod httpPost2 = new PostMethod(
"https://mail.google.com/mail/contacts/data/contacts?thumb=true&show=ALL&enums=true&psort=Name&max=10000&out=js&rf=&jsx=true");
client.executeMethod(httpPost2);

System.err.println(httpPost2.getResponseBodyAsString());
分享到:
评论
2 楼 风驰电掣ljp 2014-04-03  
肯定跑不通,Cookie每次都不一样,而且整个过程也不清楚。
1 楼 泛舟天下 2012-02-15  
一会能跑通,一会跑不通的,大多数情况下跑不通!

相关推荐

    java httpclient 模拟登录

    在"java httpclient 模拟登录"这个场景下,我们通常会用到HttpClient来模拟用户登录网站的过程,获取登录后的session信息,以便后续能够访问登录后才能看到的页面内容。以下将详细介绍如何使用Java HttpClient进行...

    HttpClient模拟登录实例

    在本实例中,我们将探讨如何使用HttpClient库来模拟登录网站,获取用户信息,以及处理带有验证码的登录场景。 首先,我们需要理解HttpClient的基本使用。HttpClient的核心类包括HttpClient本身,HttpGet、HttpPost...

    httpclient4之百度模拟登陆,回复与58同城自动登陆

    本主题将深入探讨如何使用HttpClient4库进行百度和58同城的模拟登陆操作。HttpClient4是一个强大的Java库,它提供了丰富的功能来执行HTTP请求,非常适合进行网页交互。 首先,我们来了解HttpClient4的基本用法。...

    新浪,腾讯微博HttpClient4模拟登陆

    本文将深入探讨如何使用Java中的HttpClient4库来实现对新浪和腾讯微博的模拟登录。HttpClient4是一个强大的HTTP客户端库,它允许开发者执行HTTP请求并处理响应,非常适合进行网页交互。 首先,我们来看`Sina.java`...

    Jsoup+httpclient模拟登陆和抓取页面.pdf

    Jsoup+httpclient模拟登陆和抓取页面.pdf

    httpclient模拟登录实例

    本篇文章将详细讲解如何使用HttpClient进行模拟登录操作,结合源码分析,帮助开发者深入理解其工作原理。 HttpClient库由Apache基金会开发,提供了全面的HTTP协议支持,包括标准与扩展的HTTP方法、连接管理、重试...

    HttpClient模拟登陆

    在阅读博文《HttpClient模拟登陆》时,可以深入学习如何解决这些具体问题,并查看示例代码以获得更详细的实现细节。 标签“源码”意味着你需要关注底层的工作原理,而“工具”标签则暗示HttpClient作为一个实用工具...

    httpclient模拟登陆

    ### HTTPClient 模拟登录详解 #### 一、概述 HTTPClient是Apache组织下的一个开源项目,它提供了功能丰富的HTTP客户端开发工具包,可以用来发送HTTP请求并接收响应。利用HTTPClient,我们可以轻松实现模拟登录的...

    Jsoup+httpclient 模拟登陆和抓取

    Jsoup+httpclient 模拟登录和抓取知识点: 1. Jsoup库使用介绍: - Jsoup是一个Java的HTML解析器,能够直接解析HTML文档,提供类似于jQuery的操作方法。 - 主要功能包括从URL、文件或字符串中解析HTML,使用DOM或...

    C# 使用HttpClient模拟请求的案例

    情景描述 将一个时间转换为对应的unix时间戳, ... ...除此之外,我们对请求添加签名的校验,key.../// 获取时间戳(毫秒). /// /// &lt;param name=dateTime&gt;&lt;/param&gt; /// &lt;returns&gt;&lt;/returns&gt; [HttpPost] [AllowAnonymous]

    HttpClient模拟登陆方正系统

    在模拟登录成功后,我们可以通过HttpClient访问方正系统的其他接口,获取课程、成绩等信息。以下是一些关键步骤: 1. 保持会话:登录成功后,服务器通常会返回一个session cookie。在后续的请求中,我们需要把这个...

    HttpClient模拟http浏览器请求

    我们可以使用`getStatusLine`获取状态码,`getEntity`获取响应体,如果响应体是文本,可以使用`EntityUtils.toString(entity)`将其转换为字符串。 7. **异常处理**:执行HTTP请求可能会抛出IOException,需要捕获并...

    HttpClient4.3模拟登陆新版12306

    本篇文章将详细讲解如何利用HttpClient 4.3版本来模拟登录新版12306(中国铁路客户服务中心网站)。 1. **HttpClient介绍** HttpClient是Apache的一个开源项目,它提供了强大的HTTP协议处理能力和灵活的HTTP客户端...

    httpclient4 微信公众账号模拟登陆

    httpclient4 微信公众账号模拟登陆,网络上看到的,觉得不错上传出来,供大家一起共同分享学习。

    HttpClient模拟http发送post和get请求

    HttpClient模拟http发送post和get请求

    httpClient 调用远程接口 获取数据到本地文件夹

    在这个场景中,我们使用HttpClient来调用远程接口,从电信公司的网站获取可用的新手机号码信息,并将这些数据存储到本地文件中。以下是对这个过程的详细解释: 1. **HttpClient的基本使用**: HttpClient提供了一...

    httpclient 模拟登陆代码和jar包

    在这个场景下,我们关注的是如何使用`HttpClient`进行模拟登录。 模拟登录通常是开发自动化测试、爬虫或集成服务时必要的步骤,它允许程序模仿用户在网页上的登录行为。以下是一份使用`HttpClient`进行模拟登录的...

    java模拟淘宝登录源码

    Java模拟淘宝登录源码是一种常见的网络编程技术,主要用于自动化测试、数据抓取或者模拟用户行为。在这个场景中,我们使用的工具是HTTPClient库,这是一个强大的Java HTTP客户端应用编程接口,可以方便地处理HTTP...

    HttpClient模拟登陆源码 pjYzm.zip

    工程里的入口类为:mnLogin.java ,由于模拟登陆的网站,使用了自签名的SSL证书,所以新增两个方法,创建HttpClient不校验服务端证书,后台通过调用登陆接口,获得返回的cookie信息,在使用登陆成功获得cookie,调取...

Global site tag (gtag.js) - Google Analytics