<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                // 請求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; }
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看