栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

http请求工具类HttpClientUtil,get,post请求

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

http请求工具类HttpClientUtil,get,post请求

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
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.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNamevaluePair;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;
import java.net.URLDecoder;
import java.util.List;
import java.util.Map;


public class HttpClientUtil {

    private static final Logger LOGGER = LoggerFactory.getLogger(HttpClientUtil.class);

    private static CloseableHttpClient client =  HttpClients.custom().build();

    
    public static JSonObject doGetJson(String url,Map headerMap,Map paramMap) {
        LOGGER.info("HttpClientUtil发送get请求输入参数:url={},headerMap={},paramMap={}",url,headerMap,paramMap);
        JSonObject jsonObject = new JSonObject();
        HttpGet httpGet = null;
        try {
            HttpClient client = HttpClientBuilder.create().build();
            if(paramMap!=null){
                url = url+"?";
                for(Map.Entry param : paramMap.entrySet()){
                    url = url + param.getKey()+"="+param.getValue()+"&";
                }
                url = url.substring(0,url.length()-1);
            }
            url = URLDecoder.decode(url, "UTF-8");
            httpGet = new HttpGet(url);
            if(headerMap!=null){
                for(Map.Entry header : headerMap.entrySet()){
                    httpGet.setHeader(header.getKey(),header.getValue());
                }
            }
            HttpResponse response = client.execute(httpGet);
            HttpEntity entity = response.getEntity();
            if (entity != null) {
                String result = EntityUtils.toString(entity, "UTF-8");
                jsonObject = JSON.parseObject(result);
            }
            LOGGER.info("HttpClientUtil发送发送get请求返回结果:{},参数:url={},headerMap={},paramMap={}",jsonObject.toJSonString(),url,headerMap,paramMap);
            return jsonObject;
        }catch (Exception e){
            LOGGER.info("HttpClientUtil发送发送get请求执行异常,参数:url={},headerMap={},paramMap={},异常:{}",url,headerMap,paramMap,e);
            return jsonObject;
        }finally {
            if(httpGet!=null){
                httpGet.releaseConnection();
            }

        }
    }

    public static JSonObject doGetJson(String url) {
        return doGetJson(url,null,null);
    }

    
    public static String doPostJsonWithoutHeader(String url, Map paramMap){
        return doPost(url,paramMap,null,true);
    }

    
    public static String doPostFormdataWithoutHeader(String url, Map paramMap){
        return doPost(url,paramMap,null,false);
    }

    
    public static String doPostJson(String url, Map paramMap,Map headerMap){
        return doPost(url,paramMap,headerMap,true);
    }

    
    public static String doPostJson(String url, Map paramMap) {
        return doPost(url, paramMap, null, true);
    }

    
    public static String doPostFormdata(String url, Map paramMap,Map headerMap){
        return doPost(url,paramMap,headerMap,false);
    }


    
    public static String doPost(String url, Map paramMap,Map headerMap,boolean isJson){
        LOGGER.info("HttpClientUtil发送post请求输入参数:url={},paramMap={},headerMap={},isJson={}",url,paramMap,headerMap,isJson);
        HttpPost post = null;
        try {
            HttpClientBuilder builder = HttpClients.custom();
            CloseableHttpClient client = builder.build();
            post = new HttpPost(url);
            if(isJson){
                if(paramMap!=null){
                    String body = JSON.toJSonString(paramMap);
                    post.setEntity(new StringEntity(body,"utf-8"));
                }
                post.setHeader("Content-Type","application/json;charset=utf-8");
            }else {
                if(paramMap!=null){
                    List namevaluePairList = Lists.newArrayListWithCapacity(paramMap.size());
                    for(Map.Entry param : paramMap.entrySet()){
                        namevaluePairList.add(new BasicNamevaluePair(param.getKey(),String.valueOf(param.getValue())));
                    }
                    StringEntity entity = new UrlEncodedFormEntity(namevaluePairList, "UTF-8");
                    post.setEntity(entity);
                }
                post.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
            }
            if(headerMap!=null){
                for(Map.Entry param : headerMap.entrySet()){
                    post.setHeader(param.getKey(),param.getValue());
                }
            }
            HttpResponse resp = client.execute(post);
            int code = resp.getStatusLine().getStatusCode();
            String responseStr = EntityUtils.toString(resp.getEntity(), "utf-8");
            LOGGER.info("HttpClientUtil发送post请求返回结果:{},参数:url={},paramMap={},headerMap={},isJson={}",responseStr,url,paramMap,headerMap,isJson);
            if (code == 200) {
                return responseStr;
            }
            return null;
        }catch (Exception e){
            LOGGER.info("HttpClientUtil发送post请求执行异常,参数:url={},paramMap={},headerMap={},isJson={},异常:{}",url,paramMap,headerMap,isJson,e);
            return null;
        }finally {
            if(post!=null){
                post.releaseConnection();
            }
        }
    }


    
    public static String doPostString(String url, String param,Map headerMap,boolean isJson){
        LOGGER.info("HttpClientUtil发送post请求输入参数:url={},paramMap={},headerMap={},isJson={}",url,param,headerMap,isJson);
        HttpPost post = null;
        try {
            post = new HttpPost(url);
            if(isJson){
                if(param!=null){
                    post.setEntity(new StringEntity(param, ContentType.APPLICATION_JSON));
                }
                post.setHeader("Content-Type","application/json;charset=utf-8");
            }
            HttpResponse resp = client.execute(post);
            int code = resp.getStatusLine().getStatusCode();
            String responseStr = EntityUtils.toString(resp.getEntity(), "utf-8");
            LOGGER.info("HttpClientUtil发送post请求返回结果:{},参数:url={},paramMap={},headerMap={},isJson={}",responseStr,url,param,headerMap,isJson);
            if (code == 200) {
                return responseStr;
            }
            return null;
        }catch (Exception e){
            LOGGER.info("HttpClientUtil发送post请求执行异常,参数:url={},paramMap={},headerMap={},isJson={},异常:{}",url,param,headerMap,isJson,e);
            return null;
        }finally {
            if(post!=null){
                post.releaseConnection();
            }
        }
    }

    
    public static String doPostStringV2(String url, String param,boolean isJson){
        LOGGER.info("HttpClientUtil发送post请求输入参数:url={},paramMap={},isJson={}",url,param,isJson);
        HttpPost post = null;
        try {
            post = new HttpPost(url);
            if(isJson){
                if(param!=null){
//                    String body = JSON.toJSonString(paramMap);
                    post.setEntity(new StringEntity(param, ContentType.APPLICATION_JSON));
                }
                post.setHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");
            }
            HttpResponse resp = client.execute(post);
            int code = resp.getStatusLine().getStatusCode();
            String responseStr = EntityUtils.toString(resp.getEntity(), "utf-8");
            LOGGER.info("HttpClientUtil发送post请求返回结果:{},参数:url={},paramMap={},isJson={}",responseStr,url,param,isJson);
            if (code == 200) {
                return responseStr;
            }
            return null;
        }catch (Exception e){
            LOGGER.info("HttpClientUtil发送post请求执行异常,参数:url={},paramMap={},isJson={},异常:{}",url,param,isJson,e);
            return null;
        }finally {
            if(post!=null){
                post.releaseConnection();
            }
        }
    }

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/603525.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号