C # RestSharp игнорирует параметр времени ожидания? - PullRequest
0 голосов
/ 21 января 2019

У меня есть функция 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Операция имеет тайм-аут

У кого-нибудь есть идеи, как это исправить?

...