调用第三方接口,http的post请求入参格式为json

时间:2025-03-18 15:45:09

1.需求:要调用第三方接口的放回数据,入参为json格式,其中最重要的每个接口都需要t第三方传过来token,但是token 的过期时间是十分钟。为了防止一直请求,把token存到缓存(1)存到session (2)存到redis 。根据项目需要,这里采用的是存session。

如果有调用的,去判断session有没有值,并且是否已经过了9分钟,如果是重新获取。

public static String getToken(HttpServletRequest request, HttpServletResponse response) {
        HttpSession session = ();
        DataShareDto dataShareToken = (DataShareDto) ("dataShareDto");
        if (dataShareToken != null) {
            Calendar c = ();
            long now = ();
            (());
            long lastly = ();
            if ((now - lastly) < 540000) {
                return ();
            } else {
                return commonToken(request, response);
            }
        } else {
            return commonToken(request, response);
        }
    }
   public static String commonToken(HttpServletRequest request, HttpServletResponse response) {
        try {
            JSONObject jsonObject = new JSONObject();
            ("username", USERNAME);
            ("password", PASSWORD);
            String encoding = "utf-8";
            String body = "";
            CloseableHttpClient client = ();
            HttpPost httpPost = new HttpPost(URL);
            StringEntity s = new StringEntity((), "utf-8");
            (new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
            (s);
            ("Content-type", "application/json");
            ("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
            CloseableHttpResponse res = (httpPost);
            HttpEntity entity = ();
            if (entity != null) {
                body = (entity, encoding);
            }
            (entity);
            ();
            JSONObject strs = (body);
            //((body))
            //这一步的原因是,返回的json字符创是Unicode编码格式,需要通过解析成中文格式并h返回
            String code = ("code");
            if ("01".equals(code)) {
                String data = ("data");
            //把token存到session里面
                if ((data)) {
                    HttpSession session = ();
                    DataShareDto dataShareDto = new DataShareDto();
                    (data);
                    (new Date());
                    ("dataShareDto", dataShareDto);
                    return data;
                }
            }

        } catch (Exception e) {
            ();
        }
        return "00";
    }