Сообщение от Program23
Добился я нужного функционала от своего парсера на C#. Спасибо иностранным коллегам на Stackoverflow.
|
покажи...
Сейчас у меня такая проблема:
>При загрузке изображения, иногда может выдать ошибку, как реализовать повторную загрузку?
Я слышал что-то о Retry паттернах + Polly библиотека.
Что посоветуешь, если, конечно, разбираешься в этом?
|
var img = await DownloadImage("http://google.com/img.png");
while (img == null) {
await Task.Delay(1000); // ждем секунду, это вместо Thread.Sleep
img = DownloadImage("http://google.com/img.png");
}
File.WriteAllBytes("C:\\myimage.png", img);
public async Task<byte[]> DownloadImage(string url) {
byte[] img;
try {
using (var webClient = new WebClient()) {
img = await webClient.DownloadDataTaskAsync(url);
return img;
}
}
catch {
return null;
}
}
в цикл можно еще условие на кол-во попыток добавить и в WebClient вместо обычного catch - вставить конкретный тип исключения (если проблемы с сетью - то нужно картинку заново попробовать скачать, если сервер 404 вернул, то нет смысла дальше долбить его)