Package org.vietspider.net.client

Source Code of org.vietspider.net.client.HttpClientFactory

/***************************************************************************
* Copyright 2001-2008 The VietSpider         All rights reserved.       *
**************************************************************************/
package org.vietspider.net.client;

import java.security.MessageDigest;

import org.apache.http.HttpVersion;
import org.apache.http.client.params.ClientPNames;
import org.apache.http.client.params.CookiePolicy;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.scheme.SocketFactory;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpParams;
import org.apache.http.params.HttpProtocolParams;

/**
* Author : Nhu Dinh Thuan
*          nhudinhthuan@yahoo.com
* Mar 1, 2008 
*/
public class HttpClientFactory {
  public final static String USER_AGENT_NAME = "User-Agent";
  public final static String USER_AGENT_VALUE = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3";

  public final static String CONNECTION_NAME = "Connection";
  public final static String CONNECTION_VALUE = "keep-alive";

  public final static String ACCEPT_ENCODING_NAME = "Accept-Encoding";
  public final static String ACCEPT_ENCODING_VALUE = "gzip,deflate";

  public final static String ACCEPT_CHARSET_NAME = "Accept-Charset";
  public final static String ACCEPT_CHARSET_VALUE = "UTF-8,*";

  public final static String KEEP_ALIVE_NAME = "Keep-Alive";
  public final static String KEEP_ALIVE_VALUE = "300";

  public final static String ACCEPT_LANGUAGE_NAME = "Accept-Language";
  public final static String ACCEPT_LANGUAGE_VALUE = "en-us,en;q=0.5";

  public final static String ACCEPT_NAME = "Accept";
  public final static String ACCEPT_VALUE = "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,image/*,*/*;q=0.5";

  public final static String CACHE_CONTROL_NAME = "Cache-Control";
  public final static String CACHE_CONTROL_VALUE ="max-age=0";
 
  public final static String CONTENT_TYPE_NAME ="Content-Type";
  public final static String CONTENT_TYPE_VALUE_FORM ="application/x-www-form-urlencoded";

  public static int TIMEOUT = 2*60*1000;

  public final static String REFERER_NAME = "Referer";
  public final static String LOGIN_PROPERTY  = "Login";

  public final static String HOST_NAME  = "Host";

//  private final static String HEX_MD5 = "hex_md5";
 
  /*public static AnonymousHttpClient createHttpClient(Proxies proxies) {
    SchemeRegistry schemeRegistry = createRegitry();
    HttpParams params = createHttpParams();

    ClientConnectionManager connectionManager =
      new ThreadSafeClientConnManager(params, schemeRegistry);
   
    AnonymousHttpClient client = new AnonymousHttpClient(connectionManager, params);
    client.setProxies(proxies);
    client.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(3, false));
   
    return client;
  }*/
 
  public static DefaultHttpClient createDefaultHttpClient() {
    SchemeRegistry schemeRegistry = createRegitry();
    HttpParams params = createHttpParams();
    // prepare parameters

    ClientConnectionManager connectionManager =
      new ThreadSafeClientConnManager(params, schemeRegistry);

    DefaultHttpClient client = new DefaultHttpClient(connectionManager, params);
    client.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(3, false));
    return client;
  }

  private final static SchemeRegistry createRegitry() {
    SchemeRegistry schemeRegistry = new SchemeRegistry();
    // Register the "http" and "https" protocol schemes, they are
    // required by the default operator to look up socket factories.
    SocketFactory sf = PlainSocketFactory.getSocketFactory();
    schemeRegistry.register(new Scheme("http", sf, 80));
//    sf = SSLSocketFactory.getSocketFactory();
   
    SSLSocketFactory ssf = SSLSocketFactory.getSocketFactory();
    schemeRegistry.register(new Scheme("https", ssf, 443));
   
    return schemeRegistry;
  }
 
  private final static HttpParams createHttpParams() {
    HttpParams params = new BasicHttpParams();
    HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
    HttpProtocolParams.setContentCharset(params, "UTF-8");
    HttpProtocolParams.setUseExpectContinue(params, true);
   
//    HttpConnectionParams.setSoTimeout(params, 60*1000);
//    HttpConnectionParams.setConnectionTimeout(params, 60*1000);
//    ConnManagerParams.setTimeout(params, 60*1000);
   
    params.setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);
    params.setBooleanParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, true);
    params.setIntParameter(ClientPNames.MAX_REDIRECTS, 100);
//    params.setLongParameter(ClientPNames.conCONNECTION_MANAGER_TIMEOUT, TIMEOUT);
//    HttpConnectionManagerParams.setMaxTotalConnections(params, 3000);
    return params;
  }
 
  public final static String hexMd5(String password) throws Exception {
//  System.out.println("===== > "+ password);
    MessageDigest algorithm = MessageDigest.getInstance("MD5");
    algorithm.reset();
    algorithm.update(password.getBytes());
    byte messageDigest[] = algorithm.digest();

    StringBuffer hexString = new StringBuffer();
    for (int i=0;i < messageDigest.length; i++) {
      hexString.append(Integer.toHexString(0xFF & messageDigest[i]));
    }
    return hexString.toString();
  }


}
TOP

Related Classes of org.vietspider.net.client.HttpClientFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.