`
huochai2009
  • 浏览: 1854 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

怎么用httpclient 更新人人网的状态~~

阅读更多
现在问题是登陆可以,更新状态总是失败~~求高手指点啊

public class RenRen {
    // The configuration items
    private static String userName = "88888888888888888";
    private static String password = "00000000000000000";
    private static String redirectURL = "http://status.renren.com/getdoing.do?";

    // Don't change the following URL
    private static String renRenLoginURL = "http://www.renren.com/PLogin.do";

    // The HttpClient is used in one session
    private HttpResponse response;
    private DefaultHttpClient httpclient = new DefaultHttpClient();

    private boolean login() {
        HttpPost httpost = new HttpPost(renRenLoginURL);
        // All the parameters post to the web site
        List<NameValuePair> nvps = new ArrayList<NameValuePair>();
        nvps.add(new BasicNameValuePair("origURL", redirectURL));
        nvps.add(new BasicNameValuePair("domain", "renren.com"));
        nvps.add(new BasicNameValuePair("isplogin", "true"));
        nvps.add(new BasicNameValuePair("formName", ""));
        nvps.add(new BasicNameValuePair("method", ""));
        nvps.add(new BasicNameValuePair("submit", "登录"));
        nvps.add(new BasicNameValuePair("email", userName));
        nvps.add(new BasicNameValuePair("password", password));
        try {
            httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
            response = httpclient.execute(httpost);
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        } finally {
            httpost.abort();
        }
        return true;
    }

    private boolean update() throws ClientProtocolException, IOException
    {
    	if(login())
    	{
    		
	       	HttpPost post = new HttpPost("http://status.renren.com/doing/update.do?");
	    	List<NameValuePair> cp = new ArrayList<NameValuePair>();
	       cp.add(new BasicNameValuePair("c", "haha"));
	    //   cp.add(new BasicNameValuePair("isAtHome", "0"));
	       cp.add(new BasicNameValuePair("publisher_form_ticket","-13553772"));
	       cp.add(new BasicNameValuePair("raw", "haha"));
	       cp.add(new BasicNameValuePair("requestToken", "-13553772"));
	       cp.add(new BasicNameValuePair("statusPage","1"));
	        try {
	            post.setEntity(new UrlEncodedFormEntity(cp, HTTP.UTF_8));
	            response = httpclient.execute(post);
	            
	            System.out.println(response.getStatusLine());
	        } catch (Exception e) {
	            e.printStackTrace();
	            return false;
	        } finally {
	            post.abort();
	            printText();
	        }
	        return true;
    	}
        return false;
    }

    public static void main(String[] args) throws ClientProtocolException, IOException {
        RenRen renRen = new RenRen();
        
        renRen.update();


}
分享到:
评论
2 楼 tomfish88 2011-08-02  
你没带cookie,看我的blog文章里面有介绍
1 楼 pengzhoushuo 2010-06-22  
兄弟,你的代码存在以下问题:
1、登陆可以???我说不可以!你看下你自己的代码login方法,除了因为网络异常或者Server返回500错误产生Exception的时候return false外,你总是return true,就是说是你自己认为登录成功了,结果未必是成功的。
2、要做好爬虫一定要先熟悉HTTP协议,每次请求Server会返回StateCode,如果StateCode为302、303之类的,你还需要把Location头取出来,再次请求,虽然HttpClient有时候能帮助我们做。你的update()方法得到的StateCode为302还需要再请求一下Location Header。
3、有时候你还要解析页面结果,一般用正则表达式进行,当然你也可以用HTMLParser,比如说,当你输错了密码,在你的程序里不会有任何的提示,你需要把登录的提示Parser出来然后返回提示。

相关推荐

    httpclient4.3登陆人人

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

    Java 使用HttpClient保持SESSION状态

    以上就是在Java中使用HttpClient保持SESSION状态的基本流程。在实际项目中,可能还需要处理重定向、超时、错误处理等复杂情况。注意,对于HTTPS站点,可能需要配置SSLContext和TrustManager,以允许HttpClient信任自...

    httpclient官网教程中文版

    HttpClient 提供了`HttpResponse`接口来表示响应,该接口封装了所有必要的响应数据,包括状态码、响应头和响应体。 示例代码: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); ...

    用HttpClient写的导出人人网日志的程序

    标题 "用HttpClient写的导出人人网日志的程序" 提示我们这个压缩包包含一个Java程序,用于导出人人网(Renren.com)的日志。这个程序可能利用了Apache HttpClient库,这是一个流行的Java库,用于执行HTTP请求。...

    HttpClient代理访问网络

    HttpClient代理访问网络

    HttpClient之Https应用实例

    HttpClient之Https应用实例~ 包含: HttpClient 使用代理访问Https HttpClient 信任所有主机-对于任何证书都不做检查 HttpClient 允许所有证书的校验(包括过期证书)

    HttpClient包

    HttpClient包,这个类的作用是java程序能够自动访问一个网站,HttpClient目前很受欢迎~

    使用HttpClient必须的jar包

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

    httpClient需要的jar包

    HttpClient是Apache基金会开发的一个Java库,它为Java程序员提供了一个强大的、灵活的、稳定的、功能丰富的客户端HTTP通信框架。...同时,及时关注Apache HttpClient的更新,以便利用新特性并修复已知问题。

    HttpClient 调用WebService示例

    在本文中,我们将深入探讨如何使用HttpClient调用WebService。 首先,调用WebService通常涉及SOAP(Simple Object Access Protocol)或RESTful API。HttpClient可以处理这两种类型的Web服务。在本示例中,我们假设...

    commons-httpclient-3.0.jar JAVA中使用HttpClient可以用到

    《JAVA中使用HttpClient:commons-httpclient-3.0.jar详解》 在JAVA开发中,进行HTTP请求时,Apache的HttpClient库是一个不可或缺的工具。本文将深入解析`commons-httpclient-3.0.jar`,它是HttpClient的一个重要...

    使用HttpClient下载图片

    HttpClient是个很不错的开源框架(org.appache.http),封装了访问http的请求头,参数,内容体,响应等等,使用起来更方面更强大。 HttpURLConnection是java的标准类,可以实现简单的基于URL请求、响应功能,什么都...

    httpclient httpclient.jar

    在本文中,我们将深入探讨HttpClient的核心概念、使用方法以及如何通过`httpclient.jar`进行实战应用。 首先,HttpClient的主要组件包括: 1. **HttpClient实例**:这是整个HTTP通信的核心,负责管理连接、请求和...

    使用httpclient访问servlet

    本篇文章将详细探讨如何使用HttpClient来访问Servlet,并阐述相关的核心知识点。 首先,我们需要理解Servlet的本质。Servlet是一种Java类,它扩展了服务器的功能,用于处理HTTP请求并生成响应。通常,Servlet部署在...

    HttpClient 3.x to HttpComponents HttpClient 4.x

    随着技术的发展,从早期的HttpClient 3.x版本迁移到更新的HttpComponents HttpClient 4.x版本是一个常见的需求。这不仅仅是一个简单的升级过程,而是涉及到对API的变化、编程模型的更新以及对网络编程的更深层次理解...

    android HttpClient 获取网络图片

    android HttpClient 获取网络图片 实例

    httpclient方式调用url

    本篇文章将深入探讨如何使用HttpClient方式调用URL,以及相关的知识点。 首先,HttpClient允许我们构建复杂的HTTP请求,包括GET、POST以及其他HTTP方法。使用HttpClient调用URL的基本步骤包括创建HttpClient实例、...

    httpclient

    创建HttpClient实例是使用HttpClient的第一步。通常,我们会创建一个`CloseableHttpClient`对象,这可以通过`HttpClientBuilder`或者`HttpAsyncClientBuilder`来实现。例如: ```java CloseableHttpClient ...

    使用HttpClient异步请求数据

    本篇将详细讲解如何使用`HttpClient`进行异步请求数据,并结合Android的`AsyncTask`来处理后台任务,避免阻塞UI线程。 首先,理解`HttpClient`的基本使用方法。`HttpClient`包含几个关键组件,如`HttpClient`实例、...

Global site tag (gtag.js) - Google Analytics