HttpClientUtil工具類
package com.haiqi.jmles.util; import org.apache.http.NameValuePair; 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.client.utils.URIBuilder; import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; import tk.mybatis.mapper.util.StringUtil; import java.io.IOException; import java.net.URI; import java.util.ArrayList; import java.util.List; import java.util.Map; public class HttpClientUtil { /** * 帶參數get請求 * @param url * @param param * @return */ public static String doGet(String url, Map<String, String> param) { // 創建Httpclient對象 CloseableHttpClient httpclient = HttpClients.createDefault(); String resultString = ""; CloseableHttpResponse response = null; try { // 創建uri URIBuilder builder = new URIBuilder(url); if (param != null) { for (String key : param.keySet()) { builder.addParameter(key, param.get(key)); } } URI uri = builder.build(); // 創建http GET請求 HttpGet httpGet = new HttpGet(uri); // 執行請求 response = httpclient.execute(httpGet); // 判斷返回狀態是否為200 if (response.getStatusLine().getStatusCode() == 200) { resultString = EntityUtils.toString(response.getEntity(), "UTF-8"); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (response != null) { response.close(); } httpclient.close(); } catch (IOException e) { e.printStackTrace(); } } return resultString; } /** * 不帶參數的get請求 * @param url * @return String */ public static String doGet(String url) { return doGet(url, null); } /** * 帶參數的post請求 * @param url * @param param * @return String */ public static String doPost(String url, Map<String, String> param) { // 創建Httpclient對象 CloseableHttpClient httpClient = HttpClients.createDefault(); CloseableHttpResponse response = null; String resultString = ""; try { // 創建Http Post請求 HttpPost httpPost = new HttpPost(url); // 創建參數列表 if (param != null) { List<NameValuePair> paramList = new ArrayList<>(); for (String key : param.keySet()) { paramList.add(new BasicNameValuePair(key, param.get(key))); } // 模擬表單 將參數設置為utf-8的形式 UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList, HTTP.UTF_8); httpPost.setEntity(entity); } // 執行http請求 response = httpClient.execute(httpPost); resultString = EntityUtils.toString(response.getEntity(), "utf-8"); } catch (Exception e) { e.printStackTrace(); } finally { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } return resultString; } /** * 不帶參數的post請求 * @param url * @return String */ public static String doPost(String url) { return doPost(url, null); } }
接口返回的json數據
調用外部接口,返回list集合
public List<WFTraffic> test3() { Map<String, String> parms = new HashMap<>(); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); DateFormat df= new SimpleDateFormat("yyyy-MM-dd"); //(1)獲取當前時間 LocalDateTime date = LocalDateTime.now(); String nowtime=dateTimeFormatter.format(date); System.out.println("系統當前時間 :"+nowtime); //(2)獲取當前時間的前12小時時間 LocalDateTime localDateTime = date.minusHours(12); String nowtime12=dateTimeFormatter.format(localDateTime); System.out.println("獲取當前時間的前12小時時間 :"+nowtime12); parms.put("starttime",nowtime12); parms.put("endtime",nowtime); //外部接口地址 String url="http://36.154.210.106:8090/zxpybm/sts/openShareData/getWfTraffic2?starttime="+nowtime12+"&endtime="+nowtime; //調用HttpClientUtil.doGet工具類 String result = HttpClientUtil.doGet(url); JSONObject person = JSON.parseObject(result); JSONArray at = person.getJSONArray("result"); List<WFTraffic> wFTrafficList = new ArrayList<>(); for (int i = 0; i < at.size(); i++) { JSONObject iEach = at.getJSONObject(i); WFTraffic wFTraffic= new WFTraffic(); //獲取json里的參數,set到wFTraffic里面 wFTraffic.setShipNameCN((String) iEach.get("SHIP_NAME_CN")); wFTraffic.setAdPort((String) iEach.get("AD_PORT")); wFTraffic.setShipNameCN((String) iEach.get("SHIP_NAME_EN")); wFTraffic.setAdTime((String) iEach.get("AD_TIME")); wFTraffic.setDeclare_time((String) iEach.get("DECLARE_TIME")); wFTraffic.setNextPort((String) iEach.get("NEXT_PORT")); wFTraffic.setWorkTimeBegin((String) iEach.get("WORK_TIME_BEGIN")); wFTraffic.setAdBerth((String) iEach.get("AD_BERTH")); wFTraffic.setGoodsClass((String) iEach.get("GOODS_CLASS")); wFTraffic.setTotalWeight((String) iEach.get("TOTAL_WEIGHT")); wFTraffic.setVoyageNo((String) iEach.get("VOYAGE_NO")); wFTraffic.setGoodsNameEN((String) iEach.get("GOODS_NAME_EN")); wFTraffic.setGoodsNameCN((String) iEach.get("GOODS_NAME_CN")); wFTraffic.setPortFlag((String) iEach.get("PORT_FLAG")); wFTraffic.setWorkTimeEnd((String) iEach.get("WORK_TIME_END")); wFTraffic.setPrenPort((String) iEach.get("PREV_PORT")); wFTraffic.setGoodsDirection((String) iEach.get("GOODS_DIRECTION")); wFTrafficList.add(wFTraffic); } return wFTrafficList; }