HttpClient

package com.mediaforce.crawl.util;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

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.HttpPost;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.util.EntityUtils;
import org.apache.log4j.Logger;

public class HttpClientUtil {
    private static Logger logger = Logger.getLogger(HttpClientUtil.class);
    public static String doPost(String url,Map<String,String> map,String charset){
        logger.info("doPost start");
        HttpClient httpClient = null;
        HttpPost httpPost = null;
        String result = null;
        try{
            httpClient = new SSLClient();
            httpClient.getParams().setParameter(HttpConnectionParams.CONNECTION_TIMEOUT,2000);
            httpClient.getParams().setParameter(HttpConnectionParams.SO_TIMEOUT,2000);
            httpPost = new HttpPost(url);
            //设置参数
            List<NameValuePair> list = new ArrayList<NameValuePair>();
            Iterator<Entry<String, String>> iterator = map.entrySet().iterator();
            while(iterator.hasNext()){
                Entry<String,String> elem = (Entry<String, String>) iterator.next();
                list.add(new BasicNameValuePair(elem.getKey(),elem.getValue()));
            }
            if(list.size() > 0){
                UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list,charset);
                httpPost.setEntity(entity);
            }
            HttpResponse response = httpClient.execute(httpPost);
            if(response != null){
                HttpEntity resEntity = response.getEntity();
                if(resEntity != null){
                    result = EntityUtils.toString(resEntity,charset);
                }
            }
        }catch(Exception ex){
            logger.error("dopost error",ex);
        }
        logger.info("doPost over result:"+result);
        return result;
    }
}

SSLClient

package com.mediaforce.crawl.util;

import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;

import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;

public class SSLClient extends DefaultHttpClient{
    public SSLClient() throws Exception{
        super();
        SSLContext ctx = SSLContext.getInstance("TLS");
        X509TrustManager tm = new X509TrustManager() {
                @Override
                public void checkClientTrusted(X509Certificate[] chain,
                        String authType) throws CertificateException {
                }
                @Override
                public void checkServerTrusted(X509Certificate[] chain,
                        String authType) throws CertificateException {
                }
                @Override
                public X509Certificate[] getAcceptedIssuers() {
                    return null;
                }
        };
        ctx.init(null, new TrustManager[]{tm}, null);
        SSLSocketFactory ssf = new SSLSocketFactory(ctx,SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
        ClientConnectionManager ccm = this.getConnectionManager();
        SchemeRegistry sr = ccm.getSchemeRegistry();
        sr.register(new Scheme("https", 443, ssf));
    }
}

最新文章

  1. Awesome
  2. JavaScript-事件坐标
  3. 基础知识《六》---Java集合类: Set、List、Map、Queue使用场景梳理
  4. Ajax解决IE浏览器兼容问题
  5. ZOJ 2588 Burning Bridges(求含重边的无向连通图的割边) - from lanshui_Yang
  6. Unity3d集成移动MM SDK 2.2的技术要点(坑爹的MM SDK)
  7. Delta-wave
  8. 用 Java 技术创建 RESTful Web 服务--转载
  9. Netflix公司监控内部安全的开源项目
  10. postgresql数据库配置csv格式的日志输出
  11. 【Java收集的源代码分析】Hashtable源代码分析
  12. 利用LI标签仿照a中Link进行页面跳转?
  13. idea启动TOMCAT html 乱码
  14. 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失 败,原因是出现以下错误: 80080005
  15. 让运行着的ASP.NET Web程序重新启动
  16. js作用域题目
  17. 撩课-Web大前端每天5道面试题-Day27
  18. eclipse新发现功能之dos和terminal(ssh连接)
  19. Redis 在线管理工具(phpRedisAdmin)介绍
  20. java读取配置文件内容

热门文章

  1. Openstack的web管理端相关
  2. Java 中System里getProperty(something)
  3. eclipse开启断言
  4. jade报错:unexpected token
  5. 有向图的强连通图——Kosaraju
  6. laravel框架总结(五) -- 服务提供者(提及契约Contracts)
  7. Intellij IDEA 快捷键介绍
  8. MVC简单实例
  9. 【转】CentOS下载版本介绍
  10. Apache Solr 访问权限控制