RestSharp Timeout not working
You may not be doing what you think by setting the ReadWriteTimeout
value. Your value is ignored so you get the default.
According to this answer What is default timeout value of RestSharp RestClient? RestSharp uses HttpWebRequest
in its implementation.
The timeout property for HttpWebRequest
cannot be negative HttpWebRequest.Timeout Property.
If you look in the RestSharp client code you see this: https://github.com/restsharp/RestSharp/blob/70de357b0b9dfc3926c95d1e69967c7a7cbe874c/RestSharp/RestClient.cs#L452
int readWriteTimeout = request.ReadWriteTimeout > 0
? request.ReadWriteTimeout
: this.ReadWriteTimeout;
if (readWriteTimeout > 0)
{
http.ReadWriteTimeout = readWriteTimeout;
}
Solution (Version 107+)
var options = new RestClientOptions("baseURL") {
ThrowOnAnyError = true,
Timeout = 1000 // 1 second
};
var client = new RestClient(options);
// thanks @JohnMc
Older Versions:
to alter the default time out to: 5 seconds - for example - (i.e. 5000 milliseconds):
var client = new RestClient("BaseUrl");
client.Timeout = 5000; // 5000 milliseconds == 5 seconds
Update to RestSharp v106.2.2.
See https://github.com/restsharp/RestSharp/issues/1093