HttpClient工具类

doPost

    public static String doPostJson(String reqUrl, String reqJson, List<Header> headers) {
        String retJson = "";
        HttpClient httpClient = null;
        PostMethod postMethod = null;
        try {
            Charset defaultCharset = StandardCharsets.UTF_8;
            postMethod = new PostMethod();
            postMethod.setURI(new URI(reqUrl, true, defaultCharset.toString()));
            RequestEntity requestEntity = new StringRequestEntity(reqJson, "application/json", defaultCharset.toString());
            postMethod.setRequestEntity(requestEntity);
            if (headers != null) {
                for (Header header : headers) {
                    postMethod.setRequestHeader(header);
                }
            }
            httpClient = new HttpClient();
            httpClient.getHttpConnectionManager().getParams().setSoTimeout(10000);
            httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(10000);
            logger.info("HttpClient.start PostMethod.reqUrl【{}】PostMethod.reqJson【{}】", new Object[]{reqUrl, reqJson});
            int statusCode = httpClient.executeMethod(postMethod);
            logger.info("HttpClient.end PostMethod.statusCode【{}】PostMethod.statusText【{}】", new Object[]{statusCode, postMethod.getStatusText()});
            if (statusCode == HttpStatus.HTTP_OK) {
                retJson = new String(postMethod.getResponseBody(), defaultCharset);
                logger.info("HttpClient.end PostMethod.retJson【{}】", new Object[]{retJson});
            }
        } catch (Exception exception) {
            logger.error("HttpClient.error msg【{}】stackTrace【{}】", new Object[]{exception.getMessage(), exception.getStackTrace()});
        } finally {
            if (postMethod != null) {
                postMethod.releaseConnection();
            }
            if (httpClient != null) {
                ((SimpleHttpConnectionManager) httpClient.getHttpConnectionManager()).shutdown();
            }
        }
        return retJson;
    }

doGet

    public static String doGetJson(String reqUrl, List<Header> headers) {
        String retJson = "";
        HttpClient httpClient = null;
        GetMethod getMethod = null;
        try {
            Charset defaultCharset = StandardCharsets.UTF_8;
            getMethod = new GetMethod();
            getMethod.setURI(new URI(reqUrl, true, defaultCharset.toString()));
            if (headers != null) {
                for (Header header : headers) {
                    getMethod.setRequestHeader(header);
                }
            }
            httpClient = new HttpClient();
            httpClient.getHttpConnectionManager().getParams().setSoTimeout(10000);
            httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(10000);
            logger.info("HttpClient.start PostMethod.reqUrl【{}】", new Object[]{reqUrl});
            int statusCode = httpClient.executeMethod(getMethod);
            logger.info("HttpClient.end PostMethod.statusCode【{}】PostMethod.statusText【{}】", new Object[]{statusCode, getMethod.getStatusText()});
            if (statusCode == HttpStatus.HTTP_OK) {
                retJson = new String(getMethod.getResponseBody(), defaultCharset);
                logger.info("HttpClient.end PostMethod.retJson【{}】", new Object[]{retJson});
            }
        } catch (Exception exception) {
            logger.error("HttpClient.doGetJson.error msg【{}】", new Object[]{exception.getMessage()});
            logger.error(exception.getMessage(), exception);
        } finally {
            if (getMethod != null) {
                getMethod.releaseConnection();
            }
            if (httpClient != null) {
                ((SimpleHttpConnectionManager) httpClient.getHttpConnectionManager()).shutdown();
            }
        }
        return retJson;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值