/**
 *@Title: HttpClientBean.java
 *@Package com.nis.util.httpclient 
 *@Description TODO
 *@author dell
 *@date 2016年11月7日 下午2:36:26
 *@version  版本号
 */
package com.nis.util.httpclient;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.nis.util.JsonMapper;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.apache.log4j.Logger;

/**
 * @ClassName: HttpClientBean.java 
 * @Description: TODO
 * @author (dell)
 * @date 2016年11月7日 下午2:36:26
 * @version V1.0
 */
public class HttpClientUtil {
	protected  final Logger logger = Logger.getLogger(HttpClientUtil.class);
	 /** 
     * 处理get请求. 
     * @param url  请求路径 
     * @return  json 
	 * @throws IOException 
	 * @throws ClientProtocolException 
     */  
    public static String get(String url) throws ClientProtocolException, IOException{  
        //实例化httpclient  
        CloseableHttpClient httpclient = HttpClients.createDefault();  
        //实例化get方法  
        HttpGet httpget = new HttpGet(url);   
        //请求结果  
        CloseableHttpResponse response = null;  
        String content ="";  
//        try {  
            //执行get方法  
            response = httpclient.execute(httpget);  
//            if(response.getStatusLine().getStatusCode()==200){  
                content = EntityUtils.toString(response.getEntity(),"utf-8");  
//            }  
//        } catch (ClientProtocolException e) {  
//            e.printStackTrace();  
//        } catch (IOException e) {  
//            e.printStackTrace();  
//        }  
        return content;  
    }  
    
    /** 
     * 处理post请求. 
     * @param url  请求路径 
     * @param params  参数 
     * @return  json 
     * @throws IOException 
     * @throws ClientProtocolException 
     */  
    public String post(String url,Map<String, String> params) throws ClientProtocolException, IOException{  
        //实例化httpClient  
        CloseableHttpClient httpclient = HttpClients.createDefault();  
        //实例化post方法  
        HttpPost httpPost = new HttpPost(url);   
        //处理参数  
        List<NameValuePair> nvps = new ArrayList <NameValuePair>();    
        Set<String> keySet = params.keySet();    
        for(String key : keySet) {    
            nvps.add(new BasicNameValuePair(key, params.get(key)));    
        }    
        //结果  
        CloseableHttpResponse response = null;  
        String content="";  
//        try {  
            //提交的参数  
            UrlEncodedFormEntity uefEntity  = new UrlEncodedFormEntity(nvps, "UTF-8");  
            //将参数给post方法  
            httpPost.setEntity(uefEntity);  
            //执行post方法  
            response = httpclient.execute(httpPost);  
//            if(response.getStatusLine().getStatusCode()==200){  
                content = EntityUtils.toString(response.getEntity(),"utf-8");  
//                System.out.println(content);  
//            }  
//        } catch (ClientProtocolException e) {  
//            e.printStackTrace();  
//        } catch (IOException e) {  
//            e.printStackTrace();  
//        }   
        return content;  
    }  
    public static void main(String[] args) throws ClientProtocolException, IOException {  
    	HttpClientUtil hd = new HttpClientUtil();  
        String result =  hd.get("http://10.0.6.104:8080/galaxy/service/cfg/v1/configPzIdSources");
        Object mapResult = JsonMapper.fromJsonString(result,Map.class);
        System.out.println(result);
    }  
  
}
