From 07a53e60fb5257c31e23bf1cf1065b61accaf764 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=80=9D=E6=B5=B7?= <1464576565@qq.com> Date: Sun, 27 Apr 2025 14:12:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Runtime/Utility/Utility.Http.cs | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/Runtime/Utility/Utility.Http.cs b/Runtime/Utility/Utility.Http.cs index d6f3c61..cd8aa07 100644 --- a/Runtime/Utility/Utility.Http.cs +++ b/Runtime/Utility/Utility.Http.cs @@ -62,7 +62,6 @@ namespace AlicizaX private static UnityWebRequest CreateJsonPostRequest(string url, string json) { - // 手动处理 JSON(Unity 未提供直接方法) var request = new UnityWebRequest(url, "POST"); byte[] jsonBytes = System.Text.Encoding.UTF8.GetBytes(json); request.uploadHandler = new UploadHandlerRaw(jsonBytes); @@ -73,13 +72,15 @@ namespace AlicizaX private static async UniTask SendRequest(UnityWebRequest request, CancellationToken token) { + string url = request.url; // 提前获取请求地址 + try { await request.SendWebRequest().WithCancellation(token); if (request.result != UnityWebRequest.Result.Success) { - Debug.LogError($"HTTP Error ({request.responseCode}): {request.error}"); + HandleRequestError(request, url); return string.Empty; } @@ -87,10 +88,29 @@ namespace AlicizaX } catch (OperationCanceledException) when (token.IsCancellationRequested) { - Debug.LogWarning("Request timed out."); + Log.Error($"请求超时:{url}"); return string.Empty; } } + + private static void HandleRequestError(UnityWebRequest request, string url) + { + switch (request.result) + { + case UnityWebRequest.Result.ConnectionError: + Log.Error($"无法访问地址:{url}"); + break; + case UnityWebRequest.Result.ProtocolError: + Log.Error($"HTTP协议错误 ({request.responseCode}):{url}\n{request.error}"); + break; + case UnityWebRequest.Result.DataProcessingError: + Log.Error($"数据处理错误:{url}\n{request.error}"); + break; + default: + Log.Error($"未知网络错误:{url}\n{request.error}"); + break; + } + } } } }