最簡單最直接的上手可以參見參考文檔:http://hutool.mydoc.io/?t=216015
Http協議的介紹,請參考web隨筆:http://www.cnblogs.com/jiangbei/p/6681215.html
受夠了的HttpClient?那Hutool的HttpUtil值得一試!
一、HttpUtil
快讀使用:
發送get請求,包括有參與無參
示例:
String url = "http://www.sogou.com"; Map<String, Object> paramMap = new HashMap<>(); paramMap.put("query", 10086); // 無參GET請求
String result = HttpUtil.get(url); // 帶參GET請求
String result2 = HttpUtil.get(url, paramMap);
對應源碼:
/** * 發送get請求 * * @param urlString 網址 * @return 返回內容,如果只檢查狀態碼,正常只返回 "",不正常返回 null */ public static String get(String urlString) { return HttpRequest.get(urlString).execute().body(); } /** * 發送get請求 * * @param urlString 網址 * @param paramMap post表單數據 * @return 返回數據 */ public static String get(String urlString, Map<String, Object> paramMap) { return HttpRequest.get(urlString).form(paramMap).execute().body(); }
發送post請求
這里直接引用文檔的示例:
HashMap<String, Object> paramMap = new HashMap<>(); paramMap.put("city", "北京"); String result= HttpUtil.post("https://www.baidu.com", paramMap); //文件上傳只需將參數中的鍵指定(默認file),值設為文件對象即可,對於使用者來說,文件上傳與普通表單提交並無區別
paramMap.put("file", FileUtil.file("D:\\face.jpg")); String result= HttpUtil.post("https://www.baidu.com", paramMap);
對應源碼:
/** * 發送post請求 * * @param urlString 網址 * @param paramMap post表單數據 * @return 返回數據 */ public static String post(String urlString, Map<String, Object> paramMap) { return HttpRequest.post(urlString).form(paramMap).execute().body(); } /** * 發送post請求 * * @param urlString 網址 * @param params post表單數據 * @return 返回數據 */ public static String post(String urlString, String params) { return HttpRequest.post(urlString).body(params).execute().body(); }
二、HttpRequest與HttpResponse
不滿足於高度化的工具類封裝,想擁有更多自定義請求與響應處理,可以使用HttpRequest與HttpResponse
快速上手:
String result2 = HttpRequest.post(url) .header(Header.USER_AGENT, "Hutool http") .form(paramMap) .execute().body();
// 包括封裝的一些常量Header Status等參見源碼
其它自定義項如下圖所示:

HttpResponse的處理不再贅述
