ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
// 请求URL String httpUrl = "https://tch.xunkuyun.com/vcrm/script/api/exec"; // MD5密钥 String md5Passwsword = "44703afbe00a4ab785c7a70a976a5189"; // 13位时间戳 String timestamp = LocalDateTime.now(ZoneOffset.ofHours(8)).toInstant(ZoneOffset.ofHours(8)).toEpochMilli() + ""; Map<String, String> paramMap = new HashMap<>(); // 共通参数 paramMap.put("apikey", "quote.getTechniqueList"); // 请求接口KEY,如工序列表 paramMap.put("companyid", "5010770"); // 企业ID,访问详情页面时会传入 paramMap.put("userid", "myy@xunkukeji.com"); // 用户ID,访问详情页面时会传入 paramMap.put("timestamp", timestamp); // 其他参数 paramMap.put("reqStyle", "PC"); // 请求方式 PC/H5 // 生成加密串 String signStr = Utils.createLinkStr(paramMap) + md5Passwsword; paramMap.put("apisign", UtilMD5.MD5EncodeUTF8(signStr)); // 签名处理 // 接口请求 String respStr = xkhttp.sendGet(paramMap, httpUrl); System.out.println("请求参数:" + httpUrl + "..." + paramMap.toString()); System.out.println("请求结果:" + respStr); /** * 把数组所有元素排序,并按照“参数=参数值”的模式用“&”字符拼接成字符串 * * @param pMap 数据 * @return 拼接之后字符串 */ public static String createLinkStr(Map<String, ?> pMap) { if (!mapIsNotEmpty(pMap)) { return ""; } TreeMap<String, Object> treeMap = new TreeMap<String, Object>(); for (Map.Entry<String, ?> entry : pMap.entrySet()) { treeMap.put(entry.getKey(), entry.getValue()); } StringBuffer sb = new StringBuffer(); for (Map.Entry<String, ?> entry : treeMap.entrySet()) { sb.append(entry.getKey()).append(Const.EQUAL) .append(UtilStr.encode(UtilBase.getObjectStrValue(entry.getValue()))).append(Const.AND); } String sSignStr = sb.toString(); sSignStr = sSignStr.substring(0, sSignStr.length() - 1); return sSignStr; }