• HttpClient_httpclient 4.3.1 post get的工具类


    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);
        }
         
    }
  • 相关阅读:
    Windows 编程,程序编译使用的命令行工具。
    showmemory.c 和 hello.s 源码
    jps命令
    A亚马逊WS网上系列讲座——怎么样AWS云平台上千万用户的应用建设
    Android比较字符串是空的(isEmpty)
    NSDictionary、NSMutableDictionary基本使用
    写贤治学生:关键是要管理好自己的时间
    Spark SQL Catalyst源代码分析Optimizer
    leetcode
    SQL Server 权限管理
  • 原文地址:https://www.cnblogs.com/gisblogs/p/4924213.html
Copyright © 2020-2023  润新知