From af4c522ea8e67812815f530068154638bcf03dcb Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 9 May 2026 18:58:21 +0000 Subject: [PATCH 1/2] =?UTF-8?q?feat(Web):=20exposer=20HttpClient.Timeout?= =?UTF-8?q?=20via=20propri=C3=A9t=C3=A9=20Timeout=20sur=20Request?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Ajout propriété Timeout (get/set) délégant à _httpClient.Timeout - Défaut inchangé : 100s (comportement HttpClient standard) - Process distingue désormais timeout (408) et annulation (499) via TaskCanceledException.CancellationToken.IsCancellationRequested --- Web/API/Request.cs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Web/API/Request.cs b/Web/API/Request.cs index 6d32779..e790fab 100644 --- a/Web/API/Request.cs +++ b/Web/API/Request.cs @@ -15,6 +15,17 @@ public class Request /// private readonly HttpClient _httpClient = new(); + /// + /// Gets or sets the timeout applied to every request sent by this instance. + /// Defaults to 100 seconds (HttpClient default). + /// Set to to disable. + /// + public TimeSpan Timeout + { + get => _httpClient.Timeout; + set => _httpClient.Timeout = value; + } + /// /// Settings for JSON serialization. /// @@ -503,6 +514,17 @@ private async Task> Process(HttpRequestMessage request) result.Error = await response.Content.ReadAsStringAsync(); } } + catch (TaskCanceledException ex) when (!ex.CancellationToken.IsCancellationRequested) + { + // HttpClient.Timeout dépassé — HttpClient lève TaskCanceledException dans ce cas + result.StatusCode = 408; // Request Timeout + result.Error = $"La requête a expiré ({_httpClient.Timeout.TotalSeconds}s)."; + } + catch (TaskCanceledException ex) + { + result.StatusCode = 499; + result.Error = $"La requête a été annulée : {ex.Message}"; + } catch (Exception ex) { result.StatusCode = 500; From ceab4d1bf9a1bee417185e60afece49dde44dcf8 Mon Sep 17 00:00:00 2001 From: Janus Date: Sun, 10 May 2026 16:31:13 +0200 Subject: [PATCH 2/2] Update 1.4.1 --- Web/Web.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Web/Web.csproj b/Web/Web.csproj index d13234e..287e7ba 100644 --- a/Web/Web.csproj +++ b/Web/Web.csproj @@ -20,7 +20,7 @@ README.md FrenchyApps42 logo.png - 1.4.0 + 1.4.1