一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java實現http請求工具類示例

java實現http請求工具類示例

2019-11-22 13:15Java教程網 JAVA教程

這篇文章主要介紹了java實現http請求工具類示例,需要的朋友可以參考下

通過http rest請求返回數據

 

復制代碼代碼如下:


import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;

 

import java.io.IOException;
import java.text.MessageFormat;
import java.util.List;
import java.util.concurrent.TimeUnit;

/**
 * 分裝一個http請求工具類
 *
 * @author 顧煒【guwei】 on 14-4-22.下午3:17
 */
public class HttpClientUtils {

    private static final Log log = LogFactory.getLog(HttpClientUtils.class);
    /**
     * 初始化HttpClient
     */
    private static HttpClient httpClient = null;

    /**
     * 生產HttpClient實例
     * 公開,靜態的工廠方法,需要使用時才去創建該單體
     *
     * @return
     */
    public static HttpClient getHttpClient() {
        if (httpClient == null) {
            httpClient = new DefaultHttpClient(new ThreadSafeClientConnManager());
        }
        return httpClient;
    }

    /**
     * POST方式調用
     *
     * @param url
     * @param params 參數為NameValuePair鍵值對對象
     * @return 響應字符串
     * @throws java.io.UnsupportedEncodingException
     */
    public static String executeByPOST(String url, List<NameValuePair> params) {
        HttpClient httpclient = getHttpClient();

        HttpPost post = new HttpPost(url);


        ResponseHandler<String> responseHandler = new BasicResponseHandler();
        String responseJson = null;
        try {
            if (params != null) {
                post.setEntity(new UrlEncodedFormEntity(params));
            }
            responseJson = httpclient.execute(post, responseHandler);
            log.info("HttpClient POST請求結果:" + responseJson);
        } catch (ClientProtocolException e) {
            e.printStackTrace();
            log.info("HttpClient POST請求異常:" + e.getMessage());
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            httpclient.getConnectionManager().closeExpiredConnections();
            httpclient.getConnectionManager().closeIdleConnections(30, TimeUnit.SECONDS);
        }
        return responseJson;
    }

    /**
     * Get方式請求
     *
     * @param url    帶參數占位符的URL,例:http://****/User/user/center.aspx?_action=GetSimpleUserInfo&codes={0}&email={1}
     * @param params 參數值數組,需要與url中占位符順序對應
     * @return 響應字符串
     * @throws java.io.UnsupportedEncodingException
     */
    public static String executeByGET(String url, Object[] params) {
        HttpClient httpclient = getHttpClient();

        String messages = MessageFormat.format(url, params);

        HttpGet get = new HttpGet(messages);

        ResponseHandler<String> responseHandler = new BasicResponseHandler();
        String responseJson = null;
        try {
            responseJson = httpclient.execute(get, responseHandler);
            log.info("HttpClient GET請求結果:" + responseJson);
        } catch (ClientProtocolException e) {
            e.printStackTrace();
            log.info("HttpClient GET請求異常:" + e.getMessage());
        } catch (IOException e) {
            e.printStackTrace();
            log.info("HttpClient GET請求異常:" + e.getMessage());
        } finally {
            httpclient.getConnectionManager().closeExpiredConnections();
            httpclient.getConnectionManager().closeIdleConnections(30, TimeUnit.SECONDS);
        }
        return responseJson;
    }

    /**
     * @param url
     * @return
     */
    public static String executeByGET(String url) {
        HttpClient httpclient = getHttpClient();

        HttpGet get = new HttpGet(url);

        ResponseHandler<String> responseHandler = new BasicResponseHandler();
        String responseJson = null;
        try {
            responseJson = httpclient.execute(get, responseHandler);
            log.info("HttpClient GET請求結果:" + responseJson);
        } catch (ClientProtocolException e) {
            e.printStackTrace();
            log.info("HttpClient GET請求異常:" + e.getMessage());
        } catch (IOException e) {
            e.printStackTrace();
            log.info("HttpClient GET請求異常:" + e.getMessage());
        } finally {
            httpclient.getConnectionManager().closeExpiredConnections();
            httpclient.getConnectionManager().closeIdleConnections(30, TimeUnit.SECONDS);
        }
        return responseJson;
    }
}

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 隔壁老王国产在线精品 | 国产精品久久久久jk制服 | 77成人影视 | 久久伊人精品青青草原2021 | 亚洲国产情侣偷自在线二页 | youzljzljzljzlj96| 奇米影视888四色首页 | 波多野结衣之双方调教在线观看 | 2048论坛永久入口 原创合集 | 国产精品久久久久一区二区三区 | 性色AV乱码一区二区三区视频 | 欧产日产国产精品专区 | 日韩免费毛片视频杨思敏 | 国产日韩片 | 国产亚洲精品激情一区二区三区 | 国产成人盗摄精品 | 美女扒开屁股让我桶免费 | 日本亚洲欧洲高清有码在线播放 | 免费观看欧美性一级 | 成年人免费观看 | 欧美一卡二卡科技有限公司 | 免费观看欧美一级高清 | 深夜在线观看网站 | 亚洲国产精品综合福利专区 | 超h 超重口 高h 污肉1v1 | 国产成人亚洲综合91精品555 | www.尤物在线 | 天天综合色天天综合色sb | 国产99久久久国产精品成人 | 91麻豆精品国产片在线观看 | 男男playh片在线观看 | 狠狠干狠狠插 | 午夜AV内射一区二区三区红桃视 | 皇上撞着太子妃的秘密小说 | sao虎在线精品永久 s0e一923春菜花在线播放 | 嫩草成人国产精品 | 国产精品短视频 | 精品亚洲综合在线第一区 | 蜜桃破解版免费看nba | 精品国产精品国产偷麻豆 | www.av免费 |