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 +++++++++++++++++++++++++++++++++++++++++++++++-
src/test/java/com/gs/xiaomi/XiaomiApplicationTests.java | 22 +++++++++++
2 files changed, 117 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");
+ }
+ }
}
diff --git a/src/test/java/com/gs/xiaomi/XiaomiApplicationTests.java b/src/test/java/com/gs/xiaomi/XiaomiApplicationTests.java
index f5ee5c8..45cc4df 100644
--- a/src/test/java/com/gs/xiaomi/XiaomiApplicationTests.java
+++ b/src/test/java/com/gs/xiaomi/XiaomiApplicationTests.java
@@ -42,6 +42,7 @@
request.setPageNo(1);
request.setPageSize(1000);
+ //Error: ERROR_IN_MODULECHAIN;ERROR_IN_MODULECHAIN, Sender Channel 'CC_MI_OEM_HTTP_OUT' (ID: a58369adbaa03aafb76d2c02c2ae7cd7): Catching exception calling messaging system
System.out.println("=== 娴嬭瘯BCS101 API鏈嶅姟锛圔asic Auth鐗堟湰锛� ===");
try {
// 璋冪敤鏍囧噯BCS101 API鏈嶅姟锛堝彧浣跨敤Basic Auth锛�
@@ -52,6 +53,7 @@
e.printStackTrace();
}
+ //Error: ERROR_IN_MODULECHAIN;ERROR_IN_MODULECHAIN, Sender Channel 'CC_MI_OEM_HTTP_OUT' (ID: a58369adbaa03aafb76d2c02c2ae7cd7): Catching exception calling messaging system
System.out.println("\n=== 娴嬭瘯BCS101 API鏈嶅姟锛堝甫X5鍗忚鐗堟湰锛� ===");
try {
// 璋冪敤甯5鍗忚鐨凚CS101 API鏈嶅姟
@@ -61,5 +63,25 @@
System.out.println("BCS101 API X5璋冪敤寮傚父: " + e.getMessage());
e.printStackTrace();
}
+
+ System.out.println("\n=== 娴嬭瘯BCS101 API鏈嶅姟锛堣皟璇曠増鏈級 ===");
+ try {
+ // 璋冪敤璋冭瘯鐗堟湰API鏈嶅姟
+ String debugResponse = bcs101ApiService.getBCS101DataDebug(request);
+ System.out.println("BCS101 API Debug Response: " + debugResponse);
+ } catch (Exception e) {
+ System.out.println("BCS101 API 璋冭瘯鐗堟湰璋冪敤寮傚父: " + e.getMessage());
+ e.printStackTrace();
+ }
+
+ System.out.println("\n=== 娴嬭瘯BCS101 API鏈嶅姟锛堢畝鍖栫増鏈級 ===");
+ try {
+ // 璋冪敤绠�鍖栫増鏈珹PI鏈嶅姟
+ String simpleResponse = bcs101ApiService.getBCS101DataSimple(request);
+ System.out.println("BCS101 API Simple Response: " + simpleResponse);
+ } catch (Exception e) {
+ System.out.println("BCS101 API 绠�鍖栫増鏈皟鐢ㄥ紓甯�: " + e.getMessage());
+ e.printStackTrace();
+ }
}
}
--
Gitblit v1.9.3