Android Fresco SimpleDraweeView.setImageURI не работает для этого http URL - PullRequest
0 голосов
/ 17 апреля 2019
mySimpleDraweeView.setImageURI(Uri.parse("http://cdn.cnn.com:80/cnn/.e1mo/img/4.0/logos/menu_politics.png"));

Это URL из предварительного просмотра ссылки для cnn.Это http-адрес, а не https-адрес.Он имеет порт: 80 в пути.

Если я добавлю этот URL-адрес в браузер, он будет преобразован как "http://cdn.cnn.com/cnn/.e1mo/img/4.0/logos/menu_politics.png", и изображение будет там.

Если япопробуйте вызвать setImageURI с "http://cdn.cnn.com/cnn/.e1mo/img/4.0/logos/menu_politics.png" из веб-браузера, он все равно не будет работать.

Если я попытаюсь вызвать setImageURI с" https://cdn.cnn.com/cnn/.e1mo/img/4.0/logos/menu_politics.png", это сработает.

Я использую пользовательский OKHttp3 OkHttpClient для Fresco. Я пытался использовать описанный здесь getUnsafeOkHttpClient https://stackoverflow.com/a/25992879/1578222,, но не видел изменений в поведении с ним.

Я также пытался установить OkHttpClient.followRedirects, но это также не исправило:

httpClient.followSslRedirects(true);
httpClient.followRedirects(true);

Ответы [ 2 ]

0 голосов
/ 18 апреля 2019

вы можете использовать любую внешнюю библиотеку, такую ​​как Picasso, а затем показать изображение, используя ее

0 голосов
/ 17 апреля 2019

Я нашел сообщение журнала от клиента OKHttp3, и это помогло мне выяснить проблему:

<- HTTP FAILED: java.net.UnknownServiceException: связь CLEARTEXT с cdn.cnn.com не разрешена политикой безопасности сети </p>

Решено изменить объект приложения файла манифеста Android на:

android:usesCleartextTraffic="true"
...