From 65f2eac5d58297a6e9725da47d37b38c6a8af60a Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期三, 20 八月 2025 15:54:31 +0800
Subject: [PATCH] 条码接口测试

---
 src/main/java/com/gs/xiaomi/service/BCS101ApiService.java |   98 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 95 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/gs/xiaomi/service/BCS101ApiService.java b/src/main/java/com/gs/xiaomi/service/BCS101ApiService.java
index 3f0f5ee..0e4cfb4 100644
--- a/src/main/java/com/gs/xiaomi/service/BCS101ApiService.java
+++ b/src/main/java/com/gs/xiaomi/service/BCS101ApiService.java
@@ -11,7 +11,6 @@
 
 import java.io.IOException;
 import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
 import java.util.concurrent.TimeUnit;
 
 @Service
@@ -63,7 +62,7 @@
         String base64Data = X5StringUtils.encodeBase64(jsonData);
 
         // URL缂栫爜
-        String urlEncodedData = URLEncoder.encode(base64Data, String.valueOf(StandardCharsets.UTF_8));
+        String urlEncodedData = URLEncoder.encode(base64Data, "UTF-8");
 
         // 鏋勫缓form琛ㄥ崟鏁版嵁 - 鎸夌収娉ㄩ噴瑕佹眰锛歞ata=url缂栫爜(base64缂栫爜)鐨勬暟鎹�
         String formData = "data=" + urlEncodedData;
@@ -112,7 +111,7 @@
         String base64Data = X5StringUtils.encodeBase64(jsonData);
 
         // URL缂栫爜
-        String urlEncodedData = URLEncoder.encode(base64Data, String.valueOf(StandardCharsets.UTF_8));
+        String urlEncodedData = URLEncoder.encode(base64Data, "UTF-8");
 
         // 鏋勫缓form琛ㄥ崟鏁版嵁
         String formData = "data=" + urlEncodedData;
@@ -179,4 +178,97 @@
             return DigestUtil.md5Hex(signString).toUpperCase();
         }
     }
+
+    /**
+     * 璋冭瘯鐗堟湰 - 璇︾粏杈撳嚭璇锋眰淇℃伅鏉ュ畾浣嶉棶棰�
+     */
+    public String getBCS101DataDebug(BCS101Request request) throws IOException {
+        System.out.println("=== BCS101 API 璋冭瘯淇℃伅 ===");
+
+        // 鐩存帴灏嗚姹傚璞¤浆鎹负JSON瀛楃涓�
+        String jsonData = objectMapper.writeValueAsString(request);
+        System.out.println("1. 鍘熷JSON鏁版嵁: " + jsonData);
+
+        // Base64缂栫爜
+        String base64Data = X5StringUtils.encodeBase64(jsonData);
+        System.out.println("2. Base64缂栫爜鍚�: " + base64Data);
+
+        // URL缂栫爜
+        String urlEncodedData = URLEncoder.encode(base64Data, "UTF-8");
+        System.out.println("3. URL缂栫爜鍚�: " + urlEncodedData);
+
+        // 鏋勫缓form琛ㄥ崟鏁版嵁
+        String formData = "data=" + urlEncodedData;
+        System.out.println("4. Form鏁版嵁: " + formData);
+
+        // 鏋勫缓Basic Auth
+        String credentials = DataAcquisitionConfiguration.BCS_USER_NAME + ":" + DataAcquisitionConfiguration.BCS_PWD;
+        String auth = X5StringUtils.encodeBase64(credentials);
+        System.out.println("5. Auth缂栫爜: Basic " + auth);
+        System.out.println("6. 璇锋眰URL: " + DataAcquisitionConfiguration.BCS_101_URL);
+
+        // 灏濊瘯涓嶅悓鐨凜ontent-Type
+        RequestBody body = RequestBody.create(formData, MediaType.parse("application/x-www-form-urlencoded; charset=utf-8"));
+
+        Request httpRequest = new Request.Builder()
+                .url(DataAcquisitionConfiguration.BCS_101_URL)
+                .method("POST", body)
+                .addHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8")
+                .addHeader("Authorization", "Basic " + auth)
+                .addHeader("Accept", "application/xml, text/xml, */*")
+                .addHeader("User-Agent", "BCS101-Client/1.0")
+                .addHeader("Connection", "close")
+                .build();
+
+        System.out.println("7. 鍙戦�佽姹�...");
+
+        // 鎵ц璇锋眰
+        try (Response response = client.newCall(httpRequest).execute()) {
+            System.out.println("8. 鍝嶅簲鐘舵�佺爜: " + response.code());
+            System.out.println("9. 鍝嶅簲澶�: " + response.headers().toString());
+
+            if (response.body() != null) {
+                String responseBody = response.body().string();
+                System.out.println("10. 鍝嶅簲鍐呭: " + responseBody);
+                return responseBody;
+            }
+            throw new IOException("Empty response body");
+        }
+    }
+
+    /**
+     * 绠�鍖栫増鏈� - 灏濊瘯鐩存帴鍙戦�丣SON鏁版嵁
+     */
+    public String getBCS101DataSimple(BCS101Request request) throws IOException {
+        System.out.println("=== BCS101 API 绠�鍖栫増鏈祴璇� ===");
+
+        // 鐩存帴灏嗚姹傚璞¤浆鎹负JSON瀛楃涓�
+        String jsonData = objectMapper.writeValueAsString(request);
+        System.out.println("鍙戦�佺殑JSON鏁版嵁: " + jsonData);
+
+        // 鏋勫缓Basic Auth
+        String credentials = DataAcquisitionConfiguration.BCS_USER_NAME + ":" + DataAcquisitionConfiguration.BCS_PWD;
+        String auth = X5StringUtils.encodeBase64(credentials);
+
+        // 灏濊瘯鐩存帴鍙戦�丣SON鏁版嵁锛堜笉缁忚繃Base64鍜孶RL缂栫爜锛�
+        RequestBody body = RequestBody.create(jsonData, MediaType.parse("application/json; charset=utf-8"));
+
+        Request httpRequest = new Request.Builder()
+                .url(DataAcquisitionConfiguration.BCS_101_URL)
+                .method("POST", body)
+                .addHeader("Content-Type", "application/json; charset=utf-8")
+                .addHeader("Authorization", "Basic " + auth)
+                .build();
+
+        // 鎵ц璇锋眰
+        try (Response response = client.newCall(httpRequest).execute()) {
+            System.out.println("绠�鍖栫増鏈搷搴旂姸鎬�: " + response.code());
+            if (response.body() != null) {
+                String responseBody = response.body().string();
+                System.out.println("绠�鍖栫増鏈搷搴斿唴瀹�: " + responseBody);
+                return responseBody;
+            }
+            throw new IOException("Empty response body");
+        }
+    }
 }

--
Gitblit v1.9.3