使用httppost实现post方法


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"));

 

posted @ 2021-01-13 16:22  彤彤qtt  阅读(1733)  评论(0编辑  收藏  举报