Внешний API закрывает соединение через некоторое время

#api #rest

Вопрос:

Я использую платформу .net framework для вызова внешнего API, который возвращает данные в формате JSON. Дело обстоит примерно так

  1. Первый вызов поступает в API, который возвращает около 3500 записей.
  2. Для каждой записи теперь я делаю новый вызов того же API с разными параметрами, который возвращает 4-5 записей
  3. Для каждой записи, возвращенной на шаге 2, я делаю еще один вызов того же API с другими параметрами

Теперь до 2000 записей он работает нормально и способен получать данные для каждого шага. После обработки 200 записей внешний API начинает выдавать исключение «Базовое соединение было закрыто: при отправке произошла непредвиденная ошибка».

Я много раз пытался запустить свое консольное приложение, но каждый раз получал одну и ту же ошибку. У меня нет доступа к внешнему API. Мне нужно изменить свой код, чтобы получить все данные.

Ответ №1:

После изучения многих методов сервер через несколько минут отказывался от запросов. Итак, для 3500 записей я сделал 3500 заданий и подождал, пока все они будут завершены, а затем продолжил дальше. Таким образом, я смог получить запись для всех данных без проблем с подключением. Я не знаю, является ли это хорошим решением, но да, оно сработало.

 List<Task> taskList = new List<Task>();    
for(int i=0; i<recordCount;i  ){
    taskList.Add(new Task(()=>ProcesRecord());
}
Task.WaitForAll(taskList.ToArray());
 

Если у кого-то есть лучшее решение или идея, пожалуйста, предложите.