zoukankan      html  css  js  c++  java
  • HttpClient登陆开心网

    周末没事,研究了下HttpClient登陆kaixin网,网上文章很多,但所用HttpClient版本比较旧,将其代码更新到最新:

    package com.cicc;

    import java.util.ArrayList;
    import java.util.List;

    import org.apache.http.Header;
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.HttpClient;
    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.cookie.Cookie;
    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;

    public class LoginKaixin {
     private static final String LOGON_SITE = "http://www.kaixin001.com/";
     private static final int LOGON_PORT = 80;
     
     // The HttpClient is used in one session
     private static HttpResponse response;
     private static DefaultHttpClient httpclient = new DefaultHttpClient();
     public static void main(String[] args)throws Exception {
      LoginKaixin kaixin=new LoginKaixin();
      kaixin.printText();
     }
    private static String url="http://www.kaixin001.com/login/login.php";
     private boolean login() {
      HttpPost httpost = new HttpPost(url);
      // All the parameters post to the web site
      BasicNameValuePair ie = new BasicNameValuePair("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)");  
      BasicNameValuePair url = new BasicNameValuePair("url", "/home/");
      BasicNameValuePair username = new BasicNameValuePair("email","xxxxx@163.com");
      BasicNameValuePair password = new BasicNameValuePair("password", "yourpassword");
      List<NameValuePair> nvps = new ArrayList<NameValuePair>();
      nvps.add(ie);
      nvps.add(url);
      nvps.add(username);
      nvps.add(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 String getRedirectLocation() {
      Header locationHeader = response.getFirstHeader("Location");
      if (locationHeader == null) {
       return null;
      }
      return locationHeader.getValue();
     }

     private String getText(String redirectLocation) {
    //  http://www.kaixin001.com/home/?uid=6254552
      HttpGet httpget = new HttpGet("http://www.kaixin001.com%22+redirectlocation/);
      // Create a response handler
      ResponseHandler<String> responseHandler = new BasicResponseHandler();
      String responseBody = "";
      try {
       responseBody = httpclient.execute(httpget, responseHandler);
      } catch (Exception e) {
       e.printStackTrace();
       responseBody = null;
      } finally {
       httpget.abort();
       httpclient.getConnectionManager().shutdown();
      }
      return responseBody;
     }

     public void printText() {
      if (login()) {
       String redirectLocation = getRedirectLocation();
       if (redirectLocation != null) {
        System.out.println(getText(redirectLocation));
       }
      }
     }
    }

  • 相关阅读:
    WordCount C语言实现求文本的字符数,单词数,行数
    iOS 数据持久化
    Apple store加急审核
    iOSTableViewCell不等高的几种方法
    Xcode 插件(时间就是生命)
    iOS UI组件汇总
    iOS之获取经纬度并通过反向地理编码获取详细地址
    iOS 开发常用宏
    iOS让你的app一直在后台活着(运行)
    OC动画——基础动画CABasicAnimation使用
  • 原文地址:https://www.cnblogs.com/jjj250/p/1784899.html
Copyright © 2011-2022 走看看