无法通过 placeholder.com url 加载图像

Dan*_*ica 2 java android

遇到了一个奇怪的问题,试图从这里通过模型内部的 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
Run Code Online (Sandbox Code Playgroud)

顺便说一句,如果我试图从其他链接加载图像,例如这个 -> https://avatars.mds.yandex.net/get-pdb/1088712/8b19d278-0b9b-46f8-89e4-66f5541efc55/s1200?webp=错误的

一切正常。另外我想提一下,图像没有用毕加索、壁画等加载。使用

InputStream inputStream = new URL(urlLik).openStream();
bitmap = BitmapFactory.decodeStream(inputStream);
Run Code Online (Sandbox Code Playgroud)

也没有帮助。
提前致谢,真的很适合这个问题。

使用 glide 加载图像的代码:

 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);
Run Code Online (Sandbox Code Playgroud)

Mad*_*ted 12

此问题与 User-Agent 标头参数有关。它与 Glide 无关,都是关于https://via.placeholder.com。您可以通过 GlideUrl 创建 URL 并添加 User-Agent 标头来解决此问题。

GlideUrl url = new GlideUrl("https://your-url.com", new LazyHeaders.Builder()
            .addHeader("User-Agent", "your-user-agent")
            .build());
Run Code Online (Sandbox Code Playgroud)