From 2f957374e3cf5f72a05aa5ef281a44975748ba87 Mon Sep 17 00:00:00 2001 From: CJK_mkp <113243675+CJKmkp@users.noreply.github.com> Date: Sat, 27 Dec 2025 16:51:46 +0800 Subject: [PATCH] fix:issue #330 --- Ink Canvas/MainWindow_cs/MW_Settings.cs | 41 +++++++++++++++++++------ 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/Ink Canvas/MainWindow_cs/MW_Settings.cs b/Ink Canvas/MainWindow_cs/MW_Settings.cs index e251e5f3..c807c0b4 100644 --- a/Ink Canvas/MainWindow_cs/MW_Settings.cs +++ b/Ink Canvas/MainWindow_cs/MW_Settings.cs @@ -298,22 +298,36 @@ namespace Ink_Canvas } } - private static readonly HttpClient HitokotoHttpClient = CreateHitokotoClient(); + private static readonly Lazy HitokotoHttpClient = new Lazy(CreateHitokotoClient, System.Threading.LazyThreadSafetyMode.ExecutionAndPublication); - private static HttpClient CreateHitokotoClient() + private static object CreateHitokotoClient() { - var client = new HttpClient - { - Timeout = TimeSpan.FromSeconds(5) - }; try { - client.DefaultRequestHeaders.UserAgent.ParseAdd("InkCanvas-Hitokoto/1.0"); + var client = new HttpClient + { + Timeout = TimeSpan.FromSeconds(5) + }; + try + { + client.DefaultRequestHeaders.UserAgent.ParseAdd("InkCanvas-Hitokoto/1.0"); + } + catch + { + } + return client; } - catch + catch (Exception ex) { + try + { + LogHelper.WriteLogToFile($"无法创建 HttpClient (System.Net.Http 可能缺失): {ex.Message}", LogHelper.LogType.Warning); + } + catch + { + } + return null; } - return client; } private async Task UpdateChickenSoupTextAsync() @@ -346,7 +360,14 @@ namespace Ink_Canvas try { - var response = await HitokotoHttpClient.GetAsync("https://v1.hitokoto.cn/?encode=text"); + var clientObj = HitokotoHttpClient.Value; + if (clientObj == null || !(clientObj is HttpClient client)) + { + BlackBoardWaterMark.Text = "一言功能不可用(缺少 System.Net.Http)"; + return; + } + + var response = await client.GetAsync("https://v1.hitokoto.cn/?encode=text"); response.EnsureSuccessStatusCode(); var text = await response.Content.ReadAsStringAsync();