Не удается загрузить изображение по URL-адресу placeholder.com - PullRequest
1 голос
/ 17 июня 2020
У

возникла странная проблема при попытке загрузить любую фотографию по URL-адресу внутри модели отсюда -> https://jsonplaceholder.typicode.com/photos, например, это «https://via.placeholder.com/150/92c952», но возникает ошибка:

Glide: Load failed for https://via.placeholder.com/600/92c952 with size [788x788]
class com.bumptech.glide.load.engine.GlideException: Failed to load resource
There was 1 cause:
java.io.FileNotFoundException(https://via.placeholder.com/600/92c952)
 call GlideException#logRootCauses(String) for more detail
  Cause (1 of 1): class com.bumptech.glide.load.engine.GlideException: Fetching data failed, class java.io.InputStream, REMOTE
There was 1 cause:
java.io.FileNotFoundException(https://via.placeholder.com/600/92c952)
 call GlideException#logRootCauses(String) for more detail
    Cause (1 of 1): class com.bumptech.glide.load.engine.GlideException: Fetch failed
There was 1 cause:
java.io.FileNotFoundException(https://via.placeholder.com/600/92c952)
 call GlideException#logRootCauses(String) for more detail
      Cause (1 of 1): class java.io.FileNotFoundException: https://via.placeholder.com/600/92c952

кстати, если я пытаюсь загрузить изображения по другим ссылкам, например это -> https://avatars.mds.yandex.net/get-pdb/1088712/8b19d278-0b9b-46f8-89e4-66f5541efc55/s1200?webp=false

, все работает нормально. Также я хотел бы упомянуть, что изображение не загружается с помощью Picasso, Fresco и других c. Использование

InputStream inputStream = new URL(urlLik).openStream();
bitmap = BitmapFactory.decodeStream(inputStream);

тоже не помогает.
Заранее спасибо, действительно стек в этой проблеме.

Код с загрузкой изображения с помощью скольжения:

 RequestOptions requestOptions = RequestOption.placeholderOf(R.drawable.white_background).timeout(15000)
                    .error(R.color.grey);
        Glide.with(application)
                    .setDefaultRequestOptions(requestOptions).load("https://via.placeholder.com/150/92c952")
.placeholder(R.drawable.white_background).dontAnimate().into(image);

1 Ответ

3 голосов
/ 17 июня 2020

Эта проблема связана с параметром заголовка User-Agent. Это не связано с Glide, это все про https://via.placeholder.com. Вы можете обойти это, создав URL-адрес с помощью GlideUrl и добавив заголовок User-Agent.

GlideUrl url = new GlideUrl("https://your-url.com", new LazyHeaders.Builder()
            .addHeader("User-Agent", "your-user-agent")
            .build());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...