Httpclient实现get和post的请求方式

public String get(String url, HashMap<String, Object> paramMap, HashMap<String, Object> header) {
    String result = null;
    if ("".equals(url)) {
        return result;
    }
    // 创建一个request对象
    HttpGet httpGet = new HttpGet(url);
    CloseableHttpResponse response = null;
    try {
        // 配置连接参数
        httpGet.setConfig(requestConfig);
        //设置参数  
        if (paramMap != null && paramMap.size() > 0) {
            List<NameValuePair> params = new ArrayList<>();
            for (Entry<String, Object> entry : paramMap.entrySet()) {
                params.add(new BasicNameValuePair(entry.getKey(), URLEncoder.encode(entry.getValue().toString(), "UTF-8")));
            }
            String strParams = EntityUtils.toString(new UrlEncodedFormEntity(params));
            // 防止多参数时,分隔符","被转义
            String realParams = URLDecoder.decode(strParams, "UTF-8");
            httpGet.setURI(new URI(httpGet.getURI().toString().indexOf("?") > 0 ? httpGet.getURI().toString() + "&" + realParams : httpGet.getURI().toString() + "?" + realParams));
        }
        // 设置头
        if (header != null && header.size() > 0) {
            for (Entry<String, Object> entry : header.entrySet()) {
                httpGet.addHeader(entry.getKey(), entry.getValue().toString());
            }
        }
        // 执行request请求
        response = httpClient.execute(httpGet);
        result = parseResponse(response);
        
    } catch (Exception e) {
        LOGGER.error("url : "+ url +", msg : " + e.getMessage());
        httpGet.abort();
    } finally {
        try {
            if (response != null) {
                response.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return result;
}
public String post(String url, HashMap<String, Object> paramMap, HashMap<String, Object> header) {
    String result = null;
    if ("".equals(url)) {
        return result;
    }
    // 创建一个request对象
    HttpPost httpPost = new HttpPost(url);
    CloseableHttpResponse response = null;
    try {
        // 配置连接参数
        httpPost.setConfig(requestConfig);
        // 设置参数
        if (paramMap != null && paramMap.size() > 0) {
            List<NameValuePair> params = new ArrayList<>();
            for (Entry<String, Object> entry : paramMap.entrySet()) {
                params.add(new BasicNameValuePair(entry.getKey(), entry.getValue().toString()));
            }
            HttpEntity entity = new UrlEncodedFormEntity(params);
            httpPost.setEntity(entity);
        }
        // 设置头
        if (header != null && header.size() > 0) {
            for (Entry<String, Object> entry : header.entrySet()) {
                httpPost.addHeader(entry.getKey(), entry.getValue().toString());
            }
        }
        // 执行request请求
        response = httpClient.execute(httpPost);
        result = reponseHandle(response);
    } catch (Exception e) {
        LOGGER.error("url : "+ url +", msg : " + e.getMessage());
        httpPost.abort();
    } finally {
        try {
            if (response != null) {
                response.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return result;
}

public String postJSON(String url, String json_str, HashMap<String, Object> header) {
    String result = null;
    if ("".equals(url)) {
        return result;
    }
    // 创建一个request对象
    HttpPost httpPost = new HttpPost(url);
    CloseableHttpResponse response = null;
    try {
        // 配置连接参数
        httpPost.setConfig(requestConfig);
        // 设置参数
        if (json_str != null && !"".equals(json_str)) {
            StringEntity entity = new StringEntity(json_str, ContentType.APPLICATION_JSON);
            entity.setContentEncoding("UTF-8");    
            entity.setContentType("application/json");
            httpPost.setEntity(entity);
        }
        // 设置头
        if (header != null && header.size() > 0) {
            for (Entry<String, Object> entry : header.entrySet()) {
                httpPost.addHeader(entry.getKey(), entry.getValue().toString());
            }
        }
        // 执行request请求
        response = httpClient.execute(httpPost);
        result = reponseHandle(response);
        
    } catch (Exception e) {
        LOGGER.error("url : "+ url +", msg : " + e.getMessage()+", param : " +json_str);
        httpPost.abort();
    } finally {
        try {
            if (response != null) {
                response.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return result;
}
public String delete(String url, HashMap<String, Object> header) {
    String result = null;
    if ("".equals(url)) {
        return result;
    }
    // 创建一个request对象
    HttpDelete httpDelete = new HttpDelete(url);
    CloseableHttpResponse response = null;
    try {
        // 配置连接参数
       httpDelete.setConfig(requestConfig);
        // 设置头
        if (header != null && header.size() > 0) {
            for (Entry<String, Object> entry : header.entrySet()) {
               httpDelete.addHeader(entry.getKey(), entry.getValue().toString());
            }
        }
        // 执行request请求
        response = httpClient.execute(httpDelete);
        int statusCode = response.getStatusLine().getStatusCode();
        // 没有正常响应
        if (statusCode < HttpStatus.SC_OK || statusCode >= HttpStatus.SC_MULTIPLE_CHOICES) {
            throw new RuntimeException("statusCode : " + statusCode);
        }
        result = Integer.toString(statusCode);
    } catch (Exception e) {
        LOGGER.error("url : "+ url +", msg : " + e.getMessage());
        httpDelete.abort();
    } finally {
        try {
            if (response != null) {
                response.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return result;
}

 



posted @ 2020-11-19 17:28  Shy哥  阅读(212)  评论(0)    收藏  举报