实战新浪登录

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.cookie.Cookie;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.cookie.BasicClientCookie;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

public class Test {
    @SuppressWarnings("unchecked")
    public static void main(String[] args) throws Exception {
        CustomerHttpClient httpClient = new CustomerHttpClient();
        
        String result = "";
        String get = "";
        String jsSource = Tools.readFile("html.html","utf-8");
        
        String userNmae = Tools.ExcuteJs(jsSource,"encryptUname"," @qq.com");
        // 获取第一次信息
        get = "http://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.prelo"
                + "ginCallBack&su="
                + userNmae
                + "&rsakt=mod&checkpin=1&client=ssologin.js(v1.4.18)&_=1405321676456";
        result = httpClient.get(get, null, null);
        
        String rsakv = Tools.QuMiddle(result, "rsakv\":\"", "\",\"showp");
        String middle = Tools
                .QuMiddle(result, "rsakv\":\"", "\",\"showpin");
        String pubKey = Tools.QuMiddle(result, "ubkey\":\"", "\",\"rsa");
        String serverTime = Tools.QuMiddle(result, "ertime\":", ",\"pci");
        String nonce = Tools.QuMiddle(result, "once\":\"", "\",\"pu");
        String pcid = Tools.QuMiddle(result, "\"pcid\":\"", "\",\"");
        String showpin = Tools.QuMiddle(result, "\"showpin\":", ",");
        String password = Tools.ExcuteJs(jsSource,"encryptPassword",pubKey, serverTime, "a15 142",nonce);
    
//        List formParams = new ArrayList();
//        formParams.add(new BasicNameValuePair("entry", "weibo"));
//        formParams.add(new BasicNameValuePair("gateway", "1"));
//        formParams.add(new BasicNameValuePair("from", ""));
//        formParams.add(new BasicNameValuePair("savestate", "7"));
//        formParams.add(new BasicNameValuePair("useticket", "0"));
//        formParams.add(new BasicNameValuePair("service", "miniblog"));
//        formParams.add(new BasicNameValuePair("pagerefer", ""));
//        formParams.add(new BasicNameValuePair("vsnf", "1"));
//        formParams.add(new BasicNameValuePair("su", userNmae));
//        formParams.add(new BasicNameValuePair("nonce", nonce));
//        formParams.add(new BasicNameValuePair("pwencode", "rsa2"));
//        formParams.add(new BasicNameValuePair("servertime", serverTime));
//        formParams.add(new BasicNameValuePair("rsakv", rsakv));
//        formParams.add(new BasicNameValuePair("sp", password));
//        formParams.add(new BasicNameValuePair("sr", "1366*768"));
//        formParams.add(new BasicNameValuePair("encoding", "UTF-8"));
//        formParams.add(new BasicNameValuePair("cdult", "UTF-8"));
//        formParams.add(new BasicNameValuePair("domain", "sina.com.cn"));
//        formParams.add(new BasicNameValuePair("prelt", "249"));
//        formParams.add(new BasicNameValuePair("returntype", "TEXT"));
//        UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formParams, "UTF-8");
        
        String post = "entry=weibo&gateway=1&from=&savestate=7&useticket=0&pagerefer=&"
            + "vsnf=1&su="
            + "ODE0NDc4MDYlNDBxcS5jb20%3d"
            + "&service=miniblog&"
            + "servertime="
            + serverTime
            + "&nonce="
            + nonce
            + "&pwencode=rsa2&rsakv="
            + rsakv
            + "&sp="
            + password
            + "&sr=1366*768&"
            + "encoding=UTF-8&cdult=3&domain=sina.com.cn&prelt=249&returntype=TEXT";

        StringEntity reqEntity = new StringEntity(post);
        result = httpClient.post("http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.18)", reqEntity);
        
        String savestate = Tools.QuMiddle(result, "osavestate=", "\",\"http");
        String ticket = Tools.QuMiddle(result, "ticket=", "&sso");
        List<String> list = new ArrayList<String>();
        list.add("Referer,http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.18)");
        get = 
            "http://crosdom.weicaifu.com/sso/crosdom?action=login&savestate="
                    + savestate
                    + "&callback=sinaSSOController.doCrossDomainCallBack&"
                    + "scriptId=ssoscript0&client=ssologin.js(v1.4.18)&_=1405340450375"
            ;
        result = httpClient.get(get, list, null);
        
        
        get = "http://passport.weibo.com/wbsso/login?ssosavestate="
            + savestate
            + "&url=http%3A%2F%2Fweibo.com%2Fajaxlogin.php%3Fframelogin%3D1"
            + "%26callback%3Dparent.sinaSSOController.feedBackUrlCallBack%26sudaref%3Dweibo.com&ticket="
            + ticket + "&retcode=0" ;
        list = new ArrayList<String>();
        list.add("Referer,http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.18)");
        result = httpClient.get(get, null, null);
        
        
        
        get = "http://passport.weibo.com/wbsso/login?ssosavestate="
            + savestate
            + "&url=http%3A%2F%2Fweibo.com%2Fajaxlogin.php%3Fframelogin%3D1"
            + "%26callback%3Dparent.sinaSSOController.feedBackUrlCallBack%26sudaref%3Dweibo.com&ticket="
            + ticket + "&retcode=0" ;
//        result = httpClient.get("http://weibo.com", list, null);
        result = httpClient.get("http://weibo.com", null, null);
        
        int a = 1;
//        StringEntity reqEntity = new StringEntity("entry=weibo&gateway=1&from=&savestate=7&useticket=0&pagerefer=&");
//        reqEntity.setContentType("application/x-www-form-urlencoded");
//        System.out.println(reqEntity.getContentEncoding());
//        System.out.println(reqEntity.getContentLength());
//        System.out.println(reqEntity.getContentType().toString());

        // 默认是自动管理cookie的
//        CustomerHttpClient httpClient = new CustomerHttpClient();
//        BasicClientCookie c = new BasicClientCookie("sex","value");
//        c.setDomain("localhost");
//        c.setPath("/");
//        c.setExpiryDate(new Date(new Date().getTime()+1000000));
//        List<String> heads = new ArrayList<String>();
////heads.add("Cookie,sex=lisi; Domain=localhost; Expires=Fri 16-Jan-2043 21:48:29 GMT; Path=/");
        //c.setComment("comment");
        //String result = httpClient.get("http://localhost:8080/login/Login", heads);
        
        
        
        
        
//        
//        
//String result = httpClient.get("http://localhost:8080/web/MM", heads);
// result = httpClient.get("http://localhost:8080/web/MM", heads);
//         //result = httpClient.get("http://localhost:8080/web/MM", null,c);
//        System.out.println(result);
    }
}

 

posted @ 2014-07-26 00:55  宝贝,我永远都在  阅读(580)  评论(0)    收藏  举报