Я использую API для отдыха
https://api.onedrive.com/v1.0/drive/items/{fileID}/content
для загрузки файла OneDrive
Когда я пытался загрузить несколько файлов из OneDrive, возвращалась ошибка ответа:
The remote server returned an error: (429) Too Many Requests.
Я пытался использовать заголовок ответа Retry-After для ожидания перед отправкой другого запроса, но не работал.
Есть ли какое-либо решение или способ обойти эту проблему?
Мой пример кода в c #:
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.onedrive.com/v1.0/drive/items/{fileID}/content");
request.Method = "GET";
request.Headers.Add("Authorization", "Bearer {accessToken}");
WebResponse response = request.GetResponse();
Stream fileStream = response.GetResponseStream();
}
catch (WebException ex)
{
HttpWebResponse res = (HttpWebResponse)ex.Response;
int retryAfter = 0;
if (!string.IsNullOrEmpty(res.Headers["Retry-After"]))
{
retryAfter = int.Parse(res.Headers["Retry-After"]);
}
Thread.Sleep(retryAfter);
//re-call same request function
}