tjx
2025-10-29 1385843c8a9d39bc6835b9845ea1092b3e8f2bb3
src/main/java/com/gs/xiaomi/service/BCS101ApiService.java
@@ -51,15 +51,15 @@
            // 1. 序列化Body为JSON字符串
            String bodyStr = objectMapper.writeValueAsString(request);
            System.out.println("1. Body JSON: " + bodyStr);
            //System.out.println("1. Body JSON: " + bodyStr);
            // 2. MD5签名: sign = MD5(appid + bodyStr + appkey)
            String appId = DataAcquisitionConfiguration.BCS_APP_ID;
            String appKey = DataAcquisitionConfiguration.BCS_APP_Key;
            String signString = appId + bodyStr + appKey;
            String sign = DigestUtil.md5Hex(signString).toUpperCase();
            System.out.println("2. 签名字符串: " + signString);
            System.out.println("3. MD5签名: " + sign);
            //System.out.println("2. 签名字符串: " + signString);
            //System.out.println("3. MD5签名: " + sign);
            // 3. 构建X5Header
            X5Header header = new X5Header(appId, sign);
@@ -67,24 +67,24 @@
            // 4. 构建X5Request
            X5Request x5Request = new X5Request(header, bodyStr);
            String x5RequestJson = objectMapper.writeValueAsString(x5Request);
            System.out.println("4. X5Request JSON: " + x5RequestJson);
            //System.out.println("4. X5Request JSON: " + x5RequestJson);
            // 5. Base64编码整个X5Request
            String base64Data = X5StringUtils.encodeBase64(x5RequestJson);
            System.out.println("5. Base64编码: " + base64Data);
            //System.out.println("5. Base64编码: " + base64Data);
            // 6. URL编码
            String urlEncodedData = URLEncoder.encode(base64Data, "UTF-8");
            System.out.println("6. URL编码: " + urlEncodedData);
           // System.out.println("6. URL编码: " + urlEncodedData);
            // 7. 构建form表单数据: data=url编码(base64编码)的数据
            String formData = "data=" + urlEncodedData;
            System.out.println("7. Form数据: " + formData);
            //System.out.println("7. Form数据: " + formData);
            // 8. Basic Auth认证
            String credentials = DataAcquisitionConfiguration.BCS_USER_NAME + ":" + DataAcquisitionConfiguration.BCS_PWD;
            String auth = X5StringUtils.encodeBase64(credentials);
            System.out.println("8. Basic Auth: Basic " + auth);
           // System.out.println("8. Basic Auth: Basic " + auth);
            // 9. 构建HTTP请求 - 严格按照C#代码的请求格式
            RequestBody body = RequestBody.create(formData, MediaType.parse("application/x-www-form-urlencoded"));
@@ -98,7 +98,7 @@
                    .addHeader("Pragma", "no-cache")
                    .build();
            System.out.println("9. 发送X5协议请求到: " + DataAcquisitionConfiguration.BCS_101_URL);
            //System.out.println("9. 发送X5协议请求到: " + DataAcquisitionConfiguration.BCS_101_URL);
            // 10. 执行请求
            try (Response response = client.newCall(httpRequest).execute()) {