Skip to content

Commit e18489c

Browse files
authored
Merge pull request #29 from FrApp42/dev/claude
Dev/claude
2 parents 31d7a6b + af4c522 commit e18489c

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

Web/API/Request.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,17 @@ public class Request
1515
/// </summary>
1616
private readonly HttpClient _httpClient = new();
1717

18+
/// <summary>
19+
/// Gets or sets the timeout applied to every request sent by this instance.
20+
/// Defaults to 100 seconds (HttpClient default).
21+
/// Set to <see cref="System.Threading.Timeout.InfiniteTimeSpan"/> to disable.
22+
/// </summary>
23+
public TimeSpan Timeout
24+
{
25+
get => _httpClient.Timeout;
26+
set => _httpClient.Timeout = value;
27+
}
28+
1829
/// <summary>
1930
/// Settings for JSON serialization.
2031
/// </summary>
@@ -503,6 +514,17 @@ private async Task<Result<T>> Process<T>(HttpRequestMessage request)
503514
result.Error = await response.Content.ReadAsStringAsync();
504515
}
505516
}
517+
catch (TaskCanceledException ex) when (!ex.CancellationToken.IsCancellationRequested)
518+
{
519+
// HttpClient.Timeout dépassé — HttpClient lève TaskCanceledException dans ce cas
520+
result.StatusCode = 408; // Request Timeout
521+
result.Error = $"La requête a expiré ({_httpClient.Timeout.TotalSeconds}s).";
522+
}
523+
catch (TaskCanceledException ex)
524+
{
525+
result.StatusCode = 499;
526+
result.Error = $"La requête a été annulée : {ex.Message}";
527+
}
506528
catch (Exception ex)
507529
{
508530
result.StatusCode = 500;

0 commit comments

Comments
 (0)