From fb8a9d453dd882470cd65b6a428b208227bba531 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Fri, 15 May 2026 00:16:19 +0800 Subject: [PATCH] =?UTF-8?q?fix(update):=20=E4=BF=AE=E5=A4=8D=E5=8D=8E?= =?UTF-8?q?=E4=B8=BA=E4=B8=8A=E4=BC=A0URL=E5=93=8D=E5=BA=94=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=20urlInfo=20=E5=8D=95=E5=AF=B9=E8=B1=A1=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 华为实际返回格式为 urlInfo (单对象) 而非 urlList (列表), 代码需同时支持两种格式: - urlList: 列表形式(旧版API) - urlInfo: 单对象形式(当前API,含 url/objectId/headers/method) Co-Authored-By: Claude Sonnet 4.6 --- .../update/service/StoreSubmissionService.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/update-service/src/main/java/com/xuqm/update/service/StoreSubmissionService.java b/update-service/src/main/java/com/xuqm/update/service/StoreSubmissionService.java index ccf4405..05bc113 100644 --- a/update-service/src/main/java/com/xuqm/update/service/StoreSubmissionService.java +++ b/update-service/src/main/java/com/xuqm/update/service/StoreSubmissionService.java @@ -292,13 +292,23 @@ public class StoreSubmissionService { String hwAppId = huaweiGetAppId(clientId, token, packageName); // 3. Request upload URL + // Huawei returns either urlList (list) or urlInfo (single object) Map uploadUrlResp = huaweiGetUploadUrl(clientId, token, hwAppId, file); + Map urlInfo; List> urlList = asMapList(uploadUrlResp.get("urlList")); - if (urlList.isEmpty()) urlList = asMapList(uploadUrlResp.get("data")); - if (urlList.isEmpty()) { - throw new RuntimeException("Huawei: upload url response missing urlList, response=" + summarizeMap(uploadUrlResp)); + if (!urlList.isEmpty()) { + urlInfo = urlList.get(0); + } else if (uploadUrlResp.containsKey("urlInfo") && uploadUrlResp.get("urlInfo") instanceof Map) { + @SuppressWarnings("unchecked") + Map single = (Map) uploadUrlResp.get("urlInfo"); + urlInfo = single; + } else { + urlList = asMapList(uploadUrlResp.get("data")); + if (urlList.isEmpty()) { + throw new RuntimeException("Huawei: upload url response missing urlList/urlInfo, response=" + summarizeMap(uploadUrlResp)); + } + urlInfo = urlList.get(0); } - Map urlInfo = urlList.get(0); String uploadUrl = (String) urlInfo.get("url"); @SuppressWarnings("unchecked") Map uploadHeaders = (Map) urlInfo.get("headers");