当前位置: 代码迷 >> Java Web开发 >> HttpClient模拟登录新浪微博!
  详细解决方案

HttpClient模拟登录新浪微博!

热度:316   发布时间:2016-04-17 00:22:58.0
HttpClient模拟登录新浪微博求助!!!!!!!!!!
以下是参考网上找到的代码修改后的源码,可是登录不成功,望指教或探讨!!!
QQ:940154985


package cn.vangdo.search;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.io.IOUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
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.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

public class SinaLogin {

private final static HttpClient client = new DefaultHttpClient();   
/**
 * 抓取网页
 *
 * @param url
 * @throws IOException
 */
static String get(String url) throws IOException {
HttpGet get = new HttpGet(url);
HttpResponse response = client.execute(get);
System.out.println(response.getStatusLine());
HttpEntity entity = response.getEntity();
String result = dump(entity);
get.abort();
return result;
}   
/**
 * 执行登录过程
 *
 * @param user
 * @param pwd
 * @param debug
 * @throws IOException
 */
static void login(String user, String pwd) throws IOException {
HttpPost post = new HttpPost(
"http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.3.17)");
post.setHeader("User-Agent",
"Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0");
post.setHeader("Referer", "http://weibo.com/");
post.setHeader("Content-Type", "application/x-www-form-urlencoded");   // 登录表单的信息
List<NameValuePair> qparams = new ArrayList<NameValuePair>();
qparams.add(new BasicNameValuePair("entry", "account"));
qparams.add(new BasicNameValuePair("gateway", "1"));
qparams.add(new BasicNameValuePair("from", ""));
qparams.add(new BasicNameValuePair("savestate", "0"));
qparams.add(new BasicNameValuePair("useticket", "0"));
qparams.add(new BasicNameValuePair("ssosimplelogin", "1"));
qparams.add(new BasicNameValuePair("service", "account"));
qparams.add(new BasicNameValuePair("servertime", "1323790225"));
qparams.add(new BasicNameValuePair("nonce", "FUD0TL"));
// servertime=1309164392
// nonce=PJZCHM
qparams.add(new BasicNameValuePair("pwencode", "wsse"));
qparams.add(new BasicNameValuePair("encoding", "UTF-8")); 
qparams.add(new BasicNameValuePair(
"url",
"http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack")); 
qparams.add(new BasicNameValuePair("returntype", "IFRAME"));
qparams.add(new BasicNameValuePair("setdomain", "1"));
qparams.add(new BasicNameValuePair("username", user));
qparams.add(new BasicNameValuePair("password", pwd));
  相关解决方案