httpclient 4.3.1 post get的工具类

来源:互联网 发布:淘宝网商城女装春装 编辑:程序博客网 时间:2024/06/06 04:49
package com.ryx.util; import java.util.ArrayList;import java.util.List;import java.util.Map; import org.apache.commons.lang.StringUtils;import org.apache.http.HttpEntity;import org.apache.http.NameValuePair;import org.apache.http.client.config.RequestConfig;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.HttpClientBuilder;import org.apache.http.message.BasicNameValuePair;import org.apache.http.util.EntityUtils; /** * 基于 httpclient 4.3.1版本的 http工具类 * @author mcSui * */public class HttpTookit {     private static final CloseableHttpClient httpClient;    public static final String CHARSET = "UTF-8";     static {        RequestConfig config = RequestConfig.custom().setConnectTimeout(60000).setSocketTimeout(15000).build();        httpClient = HttpClientBuilder.create().setDefaultRequestConfig(config).build();    }     public static String doGet(String url, Map<String, String> params){        return doGet(url, params,CHARSET);    }    public static String doPost(String url, Map<String, String> params){        return doPost(url, params,CHARSET);    }    /**     * HTTP Get 获取内容     * @param url  请求的url地址 ?之前的地址     * @param params 请求的参数     * @param charset    编码格式     * @return    页面内容     */    public static String doGet(String url,Map<String,String> params,String charset){        if(StringUtils.isBlank(url)){            return null;        }        try {            if(params != null && !params.isEmpty()){                List<NameValuePair> pairs = new ArrayList<NameValuePair>(params.size());                for(Map.Entry<String,String> entry : params.entrySet()){                    String value = entry.getValue();                    if(value != null){                        pairs.add(new BasicNameValuePair(entry.getKey(),value));                    }                }                url += "?" + EntityUtils.toString(new UrlEncodedFormEntity(pairs, charset));            }            HttpGet httpGet = new HttpGet(url);            CloseableHttpResponse response = httpClient.execute(httpGet);            int statusCode = response.getStatusLine().getStatusCode();            if (statusCode != 200) {                httpGet.abort();                throw new RuntimeException("HttpClient,error status code :" + statusCode);            }            HttpEntity entity = response.getEntity();            String result = null;            if (entity != null){                result = EntityUtils.toString(entity, "utf-8");            }            EntityUtils.consume(entity);            response.close();            return result;        } catch (Exception e) {            e.printStackTrace();        }        return null;    }         /**     * HTTP Post 获取内容     * @param url  请求的url地址 ?之前的地址     * @param params 请求的参数     * @param charset    编码格式     * @return    页面内容     */    public static String doPost(String url,Map<String,String> params,String charset){        if(StringUtils.isBlank(url)){            return null;        }        try {            List<NameValuePair> pairs = null;            if(params != null && !params.isEmpty()){                pairs = new ArrayList<NameValuePair>(params.size());                for(Map.Entry<String,String> entry : params.entrySet()){                    String value = entry.getValue();                    if(value != null){                        pairs.add(new BasicNameValuePair(entry.getKey(),value));                    }                }            }            HttpPost httpPost = new HttpPost(url);            if(pairs != null && pairs.size() > 0){                httpPost.setEntity(new UrlEncodedFormEntity(pairs,CHARSET));            }            CloseableHttpResponse response = httpClient.execute(httpPost);            int statusCode = response.getStatusLine().getStatusCode();            if (statusCode != 200) {                httpPost.abort();                throw new RuntimeException("HttpClient,error status code :" + statusCode);            }            HttpEntity entity = response.getEntity();            String result = null;            if (entity != null){                result = EntityUtils.toString(entity, "utf-8");            }            EntityUtils.consume(entity);            response.close();            return result;        } catch (Exception e) {            e.printStackTrace();        }        return null;    }    public static void main(String []args){        String getData = doGet("http://www.oschina.net/",null);        System.out.println(getData);        System.out.println("----------------------分割线-----------------------");        String postData = doPost("http://www.oschina.net/",null);        System.out.println(postData);    }     }

0 0
原创粉丝点击