/** * 获取应用令牌 * * @param map * @return * @throws IOException */ private InvoicingTokenResultVo getAppToken(Map<String, Object> map) throws IOException { //1. 允许第三方系统通过 API 得到应用 Token。 String url= urlStr+"/ierp/api/getAppToken.do"; // 参数 InvoicingTokenVO invoicingTokenVO = new InvoicingTokenVO(); invoicingTokenVO.setAppId(appId); invoicingTokenVO.setAppSecuret(appSecuret); invoicingTokenVO.setAccountId(accountId); invoicingTokenVO.setTenantid(tenantid); invoicingTokenVO.setLanguage(language); String accessToken = JSONObject.toJSONString(invoicingTokenVO); // 发送请求 String resultJson = HttpUtil.doPostJsonTokeen(url, accessToken); JSONObject jsonObject1 = JSONObject.parseObject(resultJson); String data = jsonObject1.get("data").toString(); ObjectMapper mapper = new ObjectMapper(); InvoicingTokenResultVo invoicingTokenResultVo= mapper.readValue(data, InvoicingTokenResultVo.class); return invoicingTokenResultVo; }
/** * 获取用户令牌 * * @param tokenResultVo * @return * @throws IOException */ private InvoicingAccessTokenResultVO getAccessToken(InvoicingTokenResultVo tokenResultVo) throws IOException { String url=urlStr+"/ierp/api/login.do"; InvoicingAccessTokenVO invoicingAccessTokenVO =new InvoicingAccessTokenVO(); invoicingAccessTokenVO.setUser(userName); invoicingAccessTokenVO.setApptoken(tokenResultVo.getApp_token()); invoicingAccessTokenVO.setAccountId(accountId); invoicingAccessTokenVO.setTenantid(tenantid); invoicingAccessTokenVO.setUsertype(usertype); invoicingAccessTokenVO.setLanguage(language); String accessToken = JSONObject.toJSONString(invoicingAccessTokenVO); // 发送请求 String resultJson = HttpUtil.doPostJsonTokeen(url, accessToken); JSONObject jsonObject1 = JSONObject.parseObject(resultJson); String data = jsonObject1.get("data").toString(); ObjectMapper mapper = new ObjectMapper(); InvoicingAccessTokenResultVO tokenResult= mapper.readValue(data, InvoicingAccessTokenResultVO.class); return tokenResult; }
/** * http post请求,Content-Type为json * * @param httpUrl 请求地址 * @param param 请求参数(json) * @return 返回结果 */ public static String doPostJsonTokeen(String httpUrl, @Nullable String param) { logger.info("发送post请求参数:{},地址:{}",param,httpUrl); HttpURLConnection connection = null; InputStream is = null; OutputStream os = null; BufferedReader br = null; StringBuffer result = new StringBuffer(); try { //创建连接对象 URL url = new URL(httpUrl); //创建链接 connection = (HttpURLConnection) url.openConnection(); //设置请求方法 connection.setRequestMethod("POST"); //设置连接超时时间(毫秒) connection.setConnectTimeout(15000); //设置读取超时时间 connection.setReadTimeout(15000); //DoOutput设置是否想httpUrlConnection输出,DoInput设置是否从httpUrlConnection读入,此外发送post请求必须设置这两个值 //设置是否可读取 connection.setDoInput(true); connection.setDoOutput(true); //设置通用的请求属性 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("Content-Type", "application/json"); connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); //拼装参数 if (!TextUtils.isBlank(param)) { //设置参数 os = connection.getOutputStream(); //拼装参数 os.write(param.getBytes("UTF-8")); } //设置权限 //设置请求头 //开启连接 connection.connect(); //读取响应 if (connection.getResponseCode() == 200) { is = connection.getInputStream(); if (null != is) { br = new BufferedReader(new InputStreamReader(is, "utf-8")); String temp = null; while (null != (temp = br.readLine())) { result.append(temp); } } } logger.info("返回的参数:{}",result); } catch (IOException e) { logger.info("请求错误--" + e.getMessage()); e.printStackTrace(); } finally { if (null != br) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } if (null != os) { try { os.close(); } catch (IOException e) { e.printStackTrace(); } } if (null != is) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } //关闭远程连接 connection.disconnect(); } return result.toString(); }