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