File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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 ;
Original file line number Diff line number Diff line change 2020 <PackageReadmeFile >README.md</PackageReadmeFile >
2121 <Company >FrenchyApps42</Company >
2222 <PackageIcon >logo.png</PackageIcon >
23- <Version >1.4.0 </Version >
23+ <Version >1.4.1 </Version >
2424 </PropertyGroup >
2525
2626 <ItemGroup >
You can’t perform that action at this time.
0 commit comments