C # RestSharp RestClient не удалось после 100 запросов к тому же API - PullRequest
0 голосов
/ 08 февраля 2019

У меня проблема при использовании RestSharp RestClient.Я пытаюсь сделать несколько запросов в цикле, но он всегда завершается неудачей после 99-го запроса.

for (int i = 0; i < 120; i++)
{
    Console.WriteLine($"Count : {i}");
    try
    {
        var request = new RestRequest("/endpoint/0016GMLCLT00000007456", Method.GET)
        {
            RequestFormat = DataFormat.Json,
            JsonSerializer = new JsonDeserializer()
        };

        request.AddParameter("accepteEmail", "true");

        var response = RestClient.Execute<AuthenticateResponse>(request);

        Console.WriteLine($"API TEST : {response.Content}");
    }
    catch
    {
        Console.WriteLine($"API TEST : FAIL");
    }
}

Я вижу это на своем терминале, когда я выполняю код

Count : 97
API TEST : {"response":"YES","description":"you did it"}
Count : 98
API TEST : {"response":"YES","description":"you did it"}
Count : 99
API TEST :
Count : 100
API TEST :
Count : 101
API TEST :

Почему этоработает 99 раз и после того, как у меня ничего нет ??

РЕДАКТИРОВАТЬ: я сделал тот же код в JAVA и пробовал также 120 итераций запроса в POSTMAN, и он работает.И это также работает с HTTP URL, но не HTTPS после 100 раз.И я добавляю это к коду, чтобы увидеть проблему

 Console.WriteLine($"API TEST : {response.ErrorMessage}");

И это говорит мне

 The underlying connection was closed: An unexpected error occurred on a send

1 Ответ

0 голосов
/ 11 февраля 2019

Исключения из «Выполнить» не генерируются, но доступны в свойстве ответа «ErrorException».И вам нужно проверить, что это свойство не является нулевым после выполнения запроса.Для вашего случая вам нужно добавить что-то вроде этого:

var response = RestClient.Execute<AuthenticateResponse>(request);

if (response.ErrorException == null)
{
    Console.WriteLine($"API TEST : {response.Content}");
}
else
{
    Console.WriteLine($"API TEST : FAIL {response.ErrorException.Message}");
}
...