У меня есть функция C #, которая проверяет, действителен ли прокси-сервер, пытаясь подключиться к REST API на https://jsonplaceholder.typicode.com/. Однако RestClient
, похоже, игнорирует значение тайм-аута 5000 мс, которое я дал и вместо этого (по умолчанию?) время ожидания 2100 мс.
Вот моя функция:
private bool checkProxy(ProxyHolder ph)
{
bool success = false;
String errorMsg = "";
Stopwatch sw = new Stopwatch();
WebProxy wp = new WebProxy(ph.ip, ph.port);
try
{
sw.Start();
IRestResponse response = new RestClient
{
BaseUrl = new System.Uri("https://jsonplaceholder.typicode.com/"),
Timeout = 5000,
ReadWriteTimeout = 5000,
Proxy = wp
}.Execute(new RestRequest
{
Resource = "todos/1",
Method = Method.GET,
Timeout = 5000,
ReadWriteTimeout = 5000,
RequestFormat = DataFormat.Json
});
if (response.ErrorException != null)
{
throw response.ErrorException;
}
success = true;
}
catch (Exception ex)
{
errorMsg = ex.Message;
}
finally
{
sw.Stop();
Console.WriteLine("Success:" + success.ToString() + "|Connection Time:" + sw.Elapsed.TotalSeconds + "|ErrorMsg" + errorMsg);
}
return success;
}
А вот вывод неверного прокси:
Успешно: False | Время соединения: 21.0209113 | ErrorMsgОперация имеет
тайм-аут
У кого-нибудь есть идеи, как это исправить?