I have the following implementation. And the default timeout is 100 seconds.
I wonder how can I able to change the default timeout?
HttpService.cs
public class HttpService : IHttpService { private static async Task GoRequestAsync<T>(string url, Dictionary<string, object> parameters, HttpMethod method, Action<T> successAction, Action<Exception> errorAction = null, string body = "") where T : class { using (var httpClient = new HttpClient(new HttpClientHandler())) { } } }
The Settings screen displays. Select System from the list on the left side of the screen. Select Timeouts. Select the appropriate timeout from the list and then select the Open timeout button.
The default value is 100,000 milliseconds (100 seconds). To set an infinite timeout, set the property value to InfiniteTimeSpan.
The default timeout of an HttpClient
is 100 seconds.
HttpClient Timeout
You can adjust to your HttpClient
and set a custom timeout duration inside of your HttpService
.
httpClient.Timeout = 5000;
HttpClient Request Timeout
You could alternatively define a timeout via a cancellation token CancellationTokenSource
using (var cts = new CancellationTokenSource(new TimeSpan(0, 0, 5)) { await httpClient.GetAsync(url, cts.Token).ConfigureAwait(false); }
A few notes:
HttpClient
will affect all requests. If you want to make it per request you will need to pass through your desired timeout duration as a parameter.CancellationTokenSource
will work if it's timeout is lower than Timeout
set by the HttpClient
and HttpClient
's timeout is not infinite. Otherwise, the HttpClient
's timeout will take place.If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With