apache httpclient新版本的get/post请求

来源:互联网 发布:leslie矩阵是什么 编辑:程序博客网 时间:2024/04/29 21:17

直接撸代码

public final class HttpUtils {    private static final Logger logger = LoggerFactory.getLogger(HttpUtils.class);    private HttpUtils(){}    /**     * get请求     * @param url     * @param headers     * @return     */    public static String get(String url, Map<String,String> headers) {        HttpGet httpGet = new HttpGet(url);        headers.entrySet().forEach(entry -> httpGet.addHeader(entry.getKey(), entry.getValue()));        return executeRequest(httpGet);    }    /**     * post请求     * @param url     * @param headers     * @param params 参数     * @return     */    public static String post(String url, Map<String,String> headers, Map<String,Object> params) {        return post(url, headers, JSON.toJSONString(params));    }    /**     * post请求     * @param url     * @param headers     * @param jsonParams 参数,json格式     * @return     */    public static String post(String url, Map<String,String> headers, String jsonParams) {        HttpPost httpPost = new HttpPost(url);        headers.entrySet().forEach(entry -> httpPost.addHeader(entry.getKey(), entry.getValue()));        HttpEntity httpEntity = new StringEntity(jsonParams, "utf-8");        httpPost.setEntity(httpEntity);        return executeRequest(httpPost);    }    /**     * 执行请求     * @param request     * @return     */    public static String executeRequest(final HttpUriRequest request) {        String result = "";        CloseableHttpClient httpClient = HttpClients.createDefault();        try {            result = httpClient.execute(request, response -> {                int statusCode = response.getStatusLine().getStatusCode();                if (statusCode >= 200 && statusCode < 300) {                    HttpEntity entity = response.getEntity();                    return entity != null ? EntityUtils.toString(entity) : null;                } else {                    throw new ClientProtocolException("Unexpected response status: " + statusCode);                }            });        } catch (IOException e) {            e.printStackTrace();            logger.error("url: {}, request failed!", request.getURI().getHost() + request.getURI().getPath());            logger.error("",e);        } finally {            closeHttpClient(httpClient);        }        return result;    }    public static void closeHttpClient(CloseableHttpClient httpClient) {        try {            httpClient.close();        } catch (IOException e) {            logger.error("",e);        }    }}
原创粉丝点击