`
to_zoe_yang
  • 浏览: 142342 次
  • 性别: Icon_minigender_2
  • 来自: 01
社区版块
存档分类
最新评论

使用HttpClient实现校内网的登录和获得全部好友的名字

阅读更多

没有添加注释,挺兴奋的,总算弄出来了!
继续实现校内的功能
呵呵~
package Renren;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.ResponseHandler;
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.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.entity.mime.Header;

public class MyRenRenFriend {
	private static String userName = null;
	private static String password = null;
	private static HttpResponse response;
	private static DefaultHttpClient httpClient = null;

	public MyRenRenFriend(String userName, String password) {
		this.userName = userName;
		this.password = password;
		this.httpClient = new DefaultHttpClient();
	}

	public HttpResponse login(){
		String loginForm = "http://www.renren.com/PLogin.do";
		String origURL = "http://www.renren.com/Home.do";
		String domain = "renren.com";
		
		HttpResponse response = null;
		HttpPost httpPost = new HttpPost(loginForm);
		NameValuePair email = new BasicNameValuePair("email", userName);
		NameValuePair pass = new BasicNameValuePair("password", password);
		NameValuePair dom = new BasicNameValuePair("domain", domain);
		List<NameValuePair> params = new ArrayList<NameValuePair>();
		
		params.add(email);
		params.add(pass);
		params.add(dom);
		
		try {
			httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
			response = httpClient.execute(httpPost);
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally{
			httpPost.abort();
		}
		return response;
//		String loginForm = "http://www.renren.com/PLogin.do";
//		String redirectURL = "http://www.renren.com/Home.do";
//		String domain = "renren.com";
//		
//		HttpResponse response = null;
//		HttpPost httpPost = new HttpPost(loginForm);
//		NameValuePair email = new BasicNameValuePair("email", userName);
//		NameValuePair pass = new BasicNameValuePair("password", password);
//		NameValuePair dom = new BasicNameValuePair("domain", domain);
//		NameValuePair origURL = new BasicNameValuePair("origURL", redirectURL);
//		NameValuePair autoLogin = new BasicNameValuePair("autoLogin", "true");
//		NameValuePair method = new BasicNameValuePair("method", "");
//		NameValuePair submit = new BasicNameValuePair("submit", "登录");
//		List<NameValuePair> params = new ArrayList<NameValuePair>();
//		
//		params.add(email);
//		params.add(pass);
//		params.add(dom);
//		params.add(origURL);
//		params.add(autoLogin);
//		params.add(method);
//		params.add(submit);
//		
//		try {
//			httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
//			response = httpClient.execute(httpPost);
//		} catch (UnsupportedEncodingException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		} catch (ClientProtocolException e) {
//			e.printStackTrace();
//		} catch (IOException e) {
//			e.printStackTrace();
//		} finally{
//			httpPost.abort();
//		}
//		return response;
	}
	
	public String getAllFriends(){
		String allFriendURL = "http://friend.renren.com/myfriendlistx.do";
		HttpGet httpGet = new HttpGet(allFriendURL);
		ResponseHandler<String> responseHandler = new BasicResponseHandler();
		StringBuffer sb = null;
		try {
			sb = new StringBuffer(this.httpClient.execute(httpGet, responseHandler));
		} catch (ClientProtocolException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally{
			
			httpGet.abort();
		}
		return new String(sb);
	}
	
	private String getName(String str){
		StringBuffer sb = new StringBuffer(str);
		int pos;
		while ((pos = sb.indexOf("\\u")) > -1) {
			String tmp = sb.substring(pos, pos + 6);
			sb.replace(pos, pos + 6, Character.toString((char) Integer
					.parseInt(tmp.substring(2), 16)));
		}
		str = sb.toString();
		return str;
	}
	
	public void getFiendName(String str){
		String str1 = "var friends=[";
		String str2 = "var hotfriends=";
		String friend = str.substring(str.indexOf(str1), str.indexOf(str2));
		
		String regex = "name\":(.*?),\"head";
		Pattern pattern = Pattern.compile(regex);
		Matcher matcher = pattern.matcher(friend.toString());
		while(matcher.find()){
			System.out.print(matcher.group(1));
			System.out.println("----"+Test.getName(matcher.group(1)));
		}
	}
	
	public void gc(){

	}

	public static void main(String[] args) {
		MyRenRenFriend yww = new MyRenRenFriend("用户名", "密码");
		System.out.println(yww.login());
		String str = yww.getAllFriends();
		System.out.println("here:");
		System.out.println(str);
		System.out.println("Name");
		yww.getFiendName(str);
	}

}
分享到:
评论

相关推荐

    httpclient4.3登陆人人

    在描述中提到,“最新版httpclient自动登录人人代码”意味着这个压缩包包含了一个使用HttpClient实现的人人网登录程序。这个程序可能包含了设置用户名和密码,发送POST请求到人人网登录接口,以及解析和验证登录结果...

    java httpclient 模拟登录

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

    使用 HttpClient 和 HtmlParser 实现简易网络爬虫

    在使用HttpClient和HtmlParser实现网络爬虫的过程中,首先需要设置开发环境。这里推荐使用Eclipse Europa作为集成开发环境(IDE),并确保安装了JDK 1.6。在Eclipse中创建一个新的JAVA工程,并将HttpClient和...

    使用HttpClient登录网易邮箱

    本篇文章将详细探讨如何利用HttpClient来实现登录网易邮箱的功能。 首先,HttpClient是一个开源的Java库,由Apache基金会维护,它允许开发人员执行HTTP请求并处理响应。HttpClient提供了丰富的API,可以方便地实现...

    HttpClient模拟登录实例

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

    使用HttpClient实现文件的上传所需lib

    在Java开发中,HttpClient是一个非常重要的库,它允许...通过理解和熟练运用这些知识点,开发者能够使用HttpClient有效地实现文件上传功能。在实际项目中,还需要结合具体的业务需求和服务器端接口来调整和优化代码。

    Android使用HttpClient实现上传下载功能并监控进度

    总之,使用HttpClient在Android上实现文件的上传和下载,并监控进度,是一个涉及网络编程、文件操作以及UI更新的综合任务。理解这些基本原理和技巧,将有助于你在实际开发中构建更高效、用户体验更好的应用程序。

    HttpClient 登录163邮箱

    HttpClient是Apache基金会开发的一个HTTP客户端库,用于在Java应用程序中执行HTTP请求。...在本例中,我们将探讨如何使用HttpClient登录163邮箱。...正确配置和使用HttpClient,能够实现高效且可靠的网络通信。

    HttpClient实现文件下载

    ### HttpClient 实现文件下载 #### 一、简介与原理 在Java开发中,经常会遇到需要通过HTTP协议来获取网络资源的需求,例如从Web服务器下载文件。Apache HttpClient 是一个用于发送HTTP请求的Java类库,它提供了...

    使用httpclient4登录blog.com

    在这个场景中,我们将深入探讨如何使用HttpClient 4来实现登录到一个名为"blog.com"的网站。 首先,我们需要了解HttpClient的基本概念。HttpClient 4 提供了一套完整的API,用于构建HTTP请求,处理响应,并管理持久...

    使用HttpClient必须的jar包

    在Java项目中使用HttpClient时,为了确保功能的完整性和正确性,通常需要引入一系列的jar包。这些jar包包含了HttpClient的核心组件、依赖库和其他必要的工具,它们共同构成了HttpClient的运行环境。 以下是一些关键...

    HttpClient实现POST GET和文件下载

    本文将深入探讨HttpClient如何实现这些功能。 ### POST请求 POST请求通常用于向服务器提交数据,如表单数据或者JSON对象。使用HttpClient发送POST请求的基本步骤如下: 1. **创建HttpClient对象**:首先,我们需要...

    httpclient如何保持session会话模拟登录后的操作

    本篇文章将深入探讨如何使用HTTPClient来实现session会话的保持,并在模拟登录后执行后续的操作。 首先,了解HTTP协议的基础知识是非常重要的。HTTP协议是无状态的,这意味着每次请求之间没有任何关联。为了保持...

    HttpClient4.5 实现https忽略SSL证书验证

    使用HttpClient4.5实现https请求忽略SSL证书验证工具类

    HttpClient登录

    本示例将详细介绍如何使用HttpClient实现网易相册的登录。 首先,我们需要了解HttpClient的基本使用。HttpClient主要包括以下几个核心组件: 1. `CloseableHttpClient`:这是HttpClient的主要接口,负责创建和管理...

    HttpClient实现远程下载

    通过HttpClient实现远程下载,本例子通过java代码实现

    SpringBoot使用httpclient发送Post请求时

    try(CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpPost httpPost = new HttpPost(url); StringEntity stringEntity = new StringEntity(params, Charset.forName("UTF-8")); ...

Global site tag (gtag.js) - Google Analytics