После завершения метода, снова бросает внутрь кода
Есть сайт у компании в которой я работаю. И вот я собственно напросился делать бота, хотя занимался другими делами. Бот хорошо работает, но не в одном случае. Концепция такая что у меня 3 потока. Первый ищет новых юзеров. Второй делает для них события(просмотры и лайки по времени) и добавляет их в бд. Ну а третий пробегает по этой таблице их выполняет. Ниже представлен метод который участвует в жизнедеятельности 3 потока.
И все бы хорошо. НО. Есть такой исход, что с интернетом какие то траблы и ответ от сервера пустая строка. Я это исправил проверкой ответа на эту пустую строку и рекурсивного запуска метода в случае если она и вправду пустая. Но что то пошло не так... Если интернета нет, он перезапускает себя пока ответ сервера не будет чем то больше "". Но когда в это время интернет появляется, он хорошо отрабатывает себя до конца. Пишет мне в консоль и когда доходит до конца метода снова перекидывает меня на строчку с рекурсивным вызовом этого метода. Вот вопрос почему. Не бейте меня если вопрос глуп и мой код тоже, это мой первый вопрос тут и я только начал изучать программухтерство.
static string makeLike(String goid)
{
var client = new RestClient("https://нашсайт.ру/тут еще кое-что/тут тоже/ну и тут");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", $@"Bearer {getRandAuthKeyRussian()}");
request.AlwaysMultipartFormData = true;
request.AddParameter("goid", goid);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
dynamic json = null;
if (response.Content != "")
{
json = JObject.Parse(response.Content); //тут парсим ответ сервера
}
else
{
Thread.Sleep(5000);
Console.WriteLine("Повторная попытка поставить лайк");
makeLike(goid); //тут снова вызываем так как ответ сервера пустая строка, а такого не может быть значит дело в инете или еще в ком нибудь
}
if (json.status.ToString().Equals("401"))
{
updateTokenAuth(); //тут мы обновляем токены если ответ сервера 401
}
if (json.status == 400) //ну если 401 ответ то лайк есть
{
Console.BackgroundColor = ConsoleColor.Red;
Console.WriteLine("Лайк от это пользователя уже поставлен!");
Console.ResetColor();
}
if (response.Content != null && response.Content != "" && json.status != 400)// а тут мы пишем в консоль что все удачно
{
Console.BackgroundColor = ConsoleColor.Red;
Console.Write("Лайк пользовтелю: " + goid + "! ");
Console.ResetColor();
Console.Write("Ответ сервера: " + json.status);
Console.WriteLine(" Статус: " + json.data.like);
return json.status;
}
return null;
}