Xamarin Forms Image. Проблема загрузки изображения по URL
Есть задача загрузить на ContentPage в listbox изображения по ссылкам из интернета. Берем список картинок и грузим. Некая малая часть картинок не отображается. Хотя из браузера они прекрасно доступны. Читаем Интернет и находим информацию что нужно в опциях Android установить
HttpClientImplementation = Managed а SSL/TLS в Native TLS 1.2+
Это не помогло. Поиск по инету тоже показывает что далеко не всем помогает. Еще как вариант предлагается использовать ffimageloading Однако, эта библиотека ведет себя также.
Проблема связана с SSL.
Для проверки(теста) берем пустой проект. Кладем на него image и пытаемся показать картинку. код:
public string img1 = "https://zhenskoe-mnenie.ru/upload/information_system_14/1/3/2/item_13266/information_items_13266.jpg";
public string img2 = "https://ic.pics.livejournal.com/koparev/70195450/27486/27486_600.jpg";
public string img3 = "https://101kote.ru/upload/resize_cache/iblock/459/770_500_240cd750bba9870f18aada2478b24840a/manul.jpg";
public MainPage()
{
InitializeComponent();
imgTest.Source = ImageSource.FromStream(() => new MemoryStream(new WebClient().DownloadData(img3)));
}
Картинка img1 отображается
Картинка img2 отображается
Картинка img3 НЕотображается
Потому 2 вопроса. Кто-то знает всё-таки как загрузить такую картинку? Или как заранее определить что картинка не будет загружена?
Спасибо.
Ответы (1 шт):
Решение. добавить ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; полный текст
public string img1 = "https://zhenskoe-mnenie.ru/upload/information_system_14/1/3/2/item_13266/information_items_13266.jpg";
public string img2 = "https://ic.pics.livejournal.com/koparev/70195450/27486/27486_600.jpg";
public string img3 = "https://101kote.ru/upload/resize_cache/iblock/459/770_500_240cd750bba9870f18aada2478b24840a/manul.jpg";
public MainPage()
{
InitializeComponent();
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
imgTest.Source = ImageSource.FromStream(() => new MemoryStream(new WebClient().DownloadData(img3)));
}