瀏覽代碼

添加网络时间校验

lzx 1 天之前
父節點
當前提交
8bad29e4a7

+ 52 - 0
Assets/Scripts/Core/Utility/Helper/NetworkTime.cs

@@ -0,0 +1,52 @@
+using System;
+using UnityEngine.Networking;
+using System.Threading.Tasks;
+using Fort23.UTool;
+
+namespace Fort23.Core
+{
+    public static class NetworkTime
+    {
+        // 百度服务器时间(通过 HTTP Date 头)
+        private static readonly string BaiduUrl = "https://www.baidu.com";
+
+        public static async Task<DateTime?> GetNetworkTimeAsync()
+        {
+            try
+            {
+                using var www = UnityWebRequest.Head(BaiduUrl); 
+                www.timeout = 5;
+
+                var operation = www.SendWebRequest();
+                while (!operation.isDone)
+                    await Task.Yield();
+
+                if (www.result == UnityWebRequest.Result.Success)
+                {
+                    string dateHeader = www.GetResponseHeader("Date");
+                    if (!string.IsNullOrEmpty(dateHeader))
+                    {
+                        // 解析 RFC 1123 格式的时间字符串
+                        if (DateTime.TryParse(dateHeader, null, System.Globalization.DateTimeStyles.AssumeUniversal, out DateTime serverTime))
+                        {
+                            var utcTime = serverTime.ToUniversalTime();
+                            LogTool.Log($"百度服务器时间: {utcTime:yyyy-MM-dd HH:mm:ss} UTC");
+                            return utcTime;
+                        }
+                    }
+                }
+                else
+                {
+                    LogTool.Error($"请求百度失败: {www.error}");
+                }
+            }
+            catch (Exception e)
+            {
+                LogTool.Error($"[NetworkTime]异常: {e.Message}");
+            }
+
+            LogTool.Error("[NetworkTime]获取百度时间失败");
+            return null;
+        }
+    }
+}

+ 2 - 2
Assets/Scripts/Core/Utility/Helper/NetworkTime.cs.meta

@@ -1,3 +1,3 @@
 fileFormatVersion: 2
-guid: dd55f514c8bf42a8aa5bc06376addb9e
-timeCreated: 1762674701
+guid: 5f05b61bf4374400904aa99853469add
+timeCreated: 1762678582