Я получаю «429 Too Many Request» при отправке нескольких запросов на веб-сайт. Я хотел бы иметь возможность отправлять несколько запросов для получения ответа с URL-адреса с ограничением или запускать задачу в виде пакета, чтобы я не получил сообщение об ошибке с веб-сайта.
Ниже код, который я устал. Он работает нормально, но после отправки нескольких запросов выдает слишком много сообщений о запросах.
const int maxConcurrency = 15;
try
{
List<Task<HttpResponseMessage>> taskList = new List<Task<HttpResponseMessage>>();
List<string> replies = new List<string>();
for (int i = 0; i < lbURLToSearch.Items.Count; i++)
{
taskList.Add(reusableHTTPClient.GetAsync(lbURLToSearch.Items[i].ToString()));
if (taskList.Count >= maxConcurrency)
Task.WaitAny(taskList.ToArray());
}
var httpClientResponse = await Task.WhenAll(taskList);
foreach (var htmlContent in httpClientResponse)
{
using (var reader = new StreamReader(await htmlContent.Content.ReadAsStreamAsync()))
{
//replies.Add(JsonConvert.DeserializeObject<string>(reader.ReadToEnd()));
rawHTMLFromSource += await reader.ReadToEndAsync();
}
}
foreach (var reply in replies)
{
// TODO:
}
}
catch
{
}
Что я могу сделать, чтобы уменьшить количество запросов?