From b4bbd084146dd2dd0dea94b57d908850e2395ce6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Sat, 3 Oct 2026 10:52:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E8=A1=8C=E5=8C=85=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E9=94=99=E8=AF=AF=20detail=20=E5=8E=BB=E6=8E=89=E4=B8=8E?= =?UTF-8?q?=E6=AD=A5=E9=AA=A4=E6=A0=87=E7=AD=BE=E9=87=8D=E5=A4=8D=E7=9A=84?= =?UTF-8?q?=E5=89=8D=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 读取响应/分片响应/完成响应失败改为直接给原始 error,步骤由 GamePackageUploadStep 标签提供 - JSON 解析与缺字段的 detail 去掉「上传状态响应」「分片响应」「完成响应」等重复主语 --- .../src/game_package_upload/runtime.rs | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/apps/ai-game-creator-shell/src-tauri/src/game_package_upload/runtime.rs b/apps/ai-game-creator-shell/src-tauri/src/game_package_upload/runtime.rs index 9fc2f6ce9..14049b120 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/game_package_upload/runtime.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/game_package_upload/runtime.rs @@ -150,20 +150,21 @@ async fn read_upload_state( )) })?; let status = response.status().as_u16(); - let body = response.text().await.map_err(|error| { - GamePackageUploadError::read_upload_state(format!("读取响应失败:{error}")) - })?; + let body = response + .text() + .await + .map_err(|error| GamePackageUploadError::read_upload_state(format!("{error}")))?; if status >= 400 { let (code, message) = parse_server_error(status, &body); let detail = server_error_detail(code, message, || format!("HTTP {status}")); return Err(GamePackageUploadError::read_upload_state(detail)); } let parsed: Value = serde_json::from_str(&body).map_err(|error| { - GamePackageUploadError::read_upload_state(format!("上传状态响应不是合法 JSON:{error}")) + GamePackageUploadError::read_upload_state(format!("响应不是合法 JSON:{error}")) })?; let payload = parsed.get("data").unwrap_or(&parsed); serde_json::from_value(payload.clone()).map_err(|error| { - GamePackageUploadError::read_upload_state(format!("上传状态响应缺少字段:{error}")) + GamePackageUploadError::read_upload_state(format!("响应缺少字段:{error}")) }) } @@ -196,9 +197,7 @@ async fn upload_chunk( })?; let status = response.status().as_u16(); let text = response.text().await.map_err(|error| { - ChunkUploadError::Retryable(GamePackageUploadError::upload_chunk(format!( - "读取分片响应失败:{error}" - ))) + ChunkUploadError::Retryable(GamePackageUploadError::upload_chunk(format!("{error}"))) })?; if status == 409 { let (code, message) = parse_server_error(status, &text); @@ -231,7 +230,7 @@ async fn upload_chunk( } let parsed: Value = serde_json::from_str(&text).map_err(|error| { ChunkUploadError::Retryable(GamePackageUploadError::upload_chunk(format!( - "分片响应不是合法 JSON:{error}" + "响应不是合法 JSON:{error}" ))) })?; let payload = parsed.get("data").unwrap_or(&parsed); @@ -240,7 +239,7 @@ async fn upload_chunk( .and_then(Value::as_u64) .ok_or_else(|| { ChunkUploadError::Fatal(GamePackageUploadError::upload_chunk( - "分片响应缺少 receivedBytes", + "响应缺少 receivedBytes", )) }) } @@ -268,16 +267,17 @@ async fn complete_upload( .await .map_err(|error| GamePackageUploadError::complete_upload(format!("请求未送达:{error}")))?; let status = response.status().as_u16(); - let text = response.text().await.map_err(|error| { - GamePackageUploadError::complete_upload(format!("读取响应失败:{error}")) - })?; + let text = response + .text() + .await + .map_err(|error| GamePackageUploadError::complete_upload(format!("{error}")))?; if status >= 400 { let (code, message) = parse_server_error(status, &text); let detail = server_error_detail(code, message, || format!("HTTP {status}")); return Err(GamePackageUploadError::complete_upload(detail)); } let parsed: Value = serde_json::from_str(&text).map_err(|error| { - GamePackageUploadError::complete_upload(format!("完成响应不是合法 JSON:{error}")) + GamePackageUploadError::complete_upload(format!("响应不是合法 JSON:{error}")) })?; let payload = parsed.get("data").unwrap_or(&parsed); Ok(GamePackageUploadOutcome {