日常记录-通用http请求工具

依赖包:

        <!-- http -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpmime</artifactId>
            <version>4.4</version>
        </dependency>

 

private static String executeBaseGet(String url, Map<String, String> params, Map<String, String> headerParams) {
        String apiUrl = url;

        CloseableHttpClient client = HttpClients.createDefault();
        try {
            HttpResponse res;
            try {
                //参数
                if (params != null && params.size() > 0) {
                    int i = 0;
                    StringBuffer param = new StringBuffer();
                    for (String key : params.keySet()) {
                        if (i == 0)
                            param.append("?");
                        else
                            param.append("&");
                        param.append(key).append("=").append(params.get(key));
                        i++;
                    }
                    apiUrl += param;
                }
                log.info("[get request]" + apiUrl);
                HttpGet get = new HttpGet(apiUrl);
                //header
                if (headerParams != null && headerParams.size() > 0) {
                    for (String key : headerParams.keySet()) {
                        get.addHeader(key, headerParams.get(key));
                    }
                }
                RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(TIMEOUTMILLIS).setConnectTimeout(TIMEOUTMILLIS).build();
                get.setConfig(requestConfig);

                res = client.execute(get);
                if (res.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
                    log.error("[get request] apiUrl:{}, error!Status:{}", apiUrl, res.getStatusLine().getStatusCode());
                    throw new RuntimeException("http get error statusCode=" + res.getStatusLine().getStatusCode());
                }
                HttpEntity entity = res.getEntity();
                String response = EntityUtils.toString(entity, "UTF-8");
                log.info("[get response] :{}", response);
                return response;
            } catch (ParseException e) {
                log.error("[get request] apiUrl:{}, error:{}", apiUrl, e.getMessage());
                throw new RuntimeException(e);
            } catch (IOException e) {
                log.error("[get request] apiUrl:{}, error:{}", apiUrl, e.getMessage());
                throw new RuntimeException(e);
            }
        } finally {
            try {
                client.close();
            } catch (IOException e) {
                log.error("CloseableHttpClient 关闭异常", e);
            }
        }
    }  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值