import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.apache.http.*; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.*; public class DoPost { public static JSONObject dopost(Map<String, Object> params, String urlHz){ // 發起請求 String resp = null; try { resp = doPost(urlHz, JSON.toJSONString(params)); // log.info("拉取信息:{}" + resp); } catch (Exception e) { // log.error("調用綠米接口失敗", e); } return JSON.parseObject(resp); } private static String doPost(String url, String params) throws Exception { CloseableHttpClient httpclient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost(url);// 創建httpPost httpPost.setHeader("Accept", "application/json"); httpPost.setHeader("Content-Type", "application/json"); String charSet = "UTF-8"; StringEntity entity = new StringEntity(params, charSet); httpPost.setEntity(entity); CloseableHttpResponse response = null; try { response = httpclient.execute(httpPost); StatusLine status = response.getStatusLine(); int state = status.getStatusCode(); System.out.println(state); if (state == HttpStatus.SC_OK) { HttpEntity responseEntity = response.getEntity(); String jsonString = EntityUtils.toString(responseEntity); return jsonString; } else { //log.error("請求返回:" + state + "(" + url + ")"); System.out.println("請求返回:" + state + "(" + url + ")"); } } finally { if (response != null) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } try { httpclient.close(); } catch (IOException e) { e.printStackTrace(); } } return null; } }
工具類如上所示;
例子:
String dingdanurl = "https://*?access_token="+"*"; Map<String,Object> tempmap = new HashMap<String,Object>(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); c.setTime(new Date()); Date end = c.getTime(); String dqrq= format.format(end)+" 00:00:00";//當前日期 c.add(Calendar.DATE, -1); Date start = c.getTime(); String qyt= format.format(start)+" 00:00:00";//前一天 // String qyt = "2020-08-08 00:00:00"; // tempmap.put("start_created",qyt);//前一天時間 // tempmap.put("end_created",dqrq);//當天時間 tempmap.put("status","TRADE_SUCCESS");//訂單狀態 已簽收 JSONObject s = dopost(tempmap,dingdanurl); System.out.println(s.getJSONObject("data"));