咨询热线:

新闻动态

您的位置:九游注册号查询进度 > 新闻动态 >

HttpClientUtils 工具类

发布日期:2025-04-12 12:36浏览次数:111

添加依赖

<dependency>

      <groupId>org.apache.httpcomponents</groupId>

      <artifactId>httpclient</artifactId>

      <version>4.5.5</version>

    </dependency>

代码

package com.utils;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import org.apache.http.HttpEntity;

import org.apache.http.NameValuePair;

import org.apache.http.ParseException;

import org.apache.http.client.config.RequestConfig;

import org.apache.http.client.entity.UrlEncodedFormEntity;

import org.apache.http.client.methods.CloseableHttpResponse;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.impl.client.CloseableHttpClient;

import org.apache.http.impl.client.HttpClientBuilder;

import org.apache.http.message.BasicNameValuePair;

import org.apache.http.util.EntityUtils;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

/**

 * @author 余胜军

 * @ClassName HttpClients

 * @qq 644064779

 * @addres www.mayikt.com

 * 微信:yushengjun644

 */

public class HttpClientUtils {

    private static final CloseableHttpClient httpClient;

    public static final String CHARSET = "UTF-8";

    private static final Log log = LogFactory.getLog(HttpClientUtils.class);

    // 采用静态代码块,初始化超时时间配置,再根据配置生成默认httpClient对象

    static {

        RequestConfig config = RequestConfig.custom().setConnectTimeout(60000).setSocketTimeout(15000).build();

        httpClient = HttpClientBuilder.create().setDefaultRequestConfig(config).build();

    }

    public static String doGet(String url, Map<String, String> params) {

        return doGet(url, params, CHARSET);

    }

    public static String doPost(String url, Map<String, String> params) throws IOException {

        return doPost(url, params, CHARSET);

    }

    /**

     * HTTP Get 获取内容

     *

     * @param url     请求的url地址 ?之前的地址

     * @param params  请求的参数

     * @param charset 编码格式

     * @return 页面内容

     */

    public static String doGet(String url, Map<String, String> params, String charset) {

        try {

            if (params != null && !params.isEmpty()) {

                List<NameValuePair> pairs = new ArrayList<NameValuePair>(params.size());

                for (Map.Entry<String, String> entry : params.entrySet()) {

                    String value = entry.getValue();

                    if (value != null) {

                        pairs.add(new BasicNameValuePair(entry.getKey(), value));

                    }

                }

                // 将请求参数和url进行拼接

                url += "?" + EntityUtils.toString(new UrlEncodedFormEntity(pairs, charset));

            }

            HttpGet httpGet = new HttpGet(url);

            CloseableHttpResponse response = httpClient.execute(httpGet);

            int statusCode = response.getStatusLine().getStatusCode();

            if (statusCode != 200) {

                httpGet.abort();

                throw new RuntimeException("HttpClient,error status code :" + statusCode);

            }

            HttpEntity entity = response.getEntity();

            String result = null;

            if (entity != null) {

                result = EntityUtils.toString(entity, "utf-8");

            }

            EntityUtils.consume(entity);

            response.close();

            return result;

        } catch (Exception e) {

            log.error("请求服务器端出错:" + e);

            return null;

        }

    }

    /**

     * HTTP Post 获取内容

     *

     * @param url     请求的url地址 ?之前的地址

     * @param params  请求的参数

     * @param charset 编码格式

     * @return 页面内容

     * @throws IOException

     */

    public static String doPost(String url, Map<String, String> params, String charset)

            throws IOException {

        List<NameValuePair> pairs = null;

        if (params != null && !params.isEmpty()) {

            pairs = new ArrayList<NameValuePair>(params.size());

            for (Map.Entry<String, String> entry : params.entrySet()) {

                String value = entry.getValue();

                if (value != null) {

                    pairs.add(new BasicNameValuePair(entry.getKey(), value));

                }

            }

        }

        HttpPost httpPost = new HttpPost(url);

        if (pairs != null && pairs.size() > 0) {

            httpPost.setEntity(new UrlEncodedFormEntity(pairs, CHARSET));

        }

        CloseableHttpResponse response = null;

        try {

            response = httpClient.execute(httpPost);

            int statusCode = response.getStatusLine().getStatusCode();

            if (statusCode != 200) {

                httpPost.abort();

                throw new RuntimeException("HttpClient,error status code :" + statusCode);

            }

            HttpEntity entity = response.getEntity();

            String result = null;

            if (entity != null) {

                result = EntityUtils.toString(entity, "utf-8");

            }

            EntityUtils.consume(entity);

            return result;

        } catch (ParseException e) {

            log.error("请求服务器端出错:" + e);

            return null;

        } finally {

            if (response != null)

                response.close();

        }

    }

}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。
查看更多 >>

九游注册号查询进度介绍

查看更多 >>

产品展示

Powered by 九游注册号查询进度 RSS地图 HTML地图