如何使用 Fresco 将图像设置为 Google Play Books API 缩略图?

How to set image to Google Play Books API thumbnail using Fresco?

我正在尝试使用 Fresco(我也尝试过使用 Glide 和 Picasso)1.10.0 从 URL 加载 Google Play 书籍图像缩略图。我可以加载另一张图片(例如 https://i.imgur.com/6zDqjm8.jpg), but only the placeholder image shows when I use the Google Play Books thumbnail link (e.g. http://books.google.com/books/content?id=F1wgqlNi8AMC&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_api)。

我还尝试在 Uri.parse 代码中的 link 末尾添加“.jpeg”(因为在网络浏览器中图像仍然显示),但它没有没有什么区别。

你知道为什么 and/or 我做错了吗?

我的清单中已获得 INTERNET 许可。我的 XML 文件中也有 Fresco 命名空间。

我的 Fresco 代码(取自 Getting Started with Fresco 指南):

Uri uri = Uri.parse("http://books.google.com/books/content?id=F1wgqlNi8AMC&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_api");
SimpleDraweeView draweeView = findViewById(R.id.my_image_view);
draweeView.setImageURI(uri);

XML SimpleDraweeView 代码:

 <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/my_image_view"
        android:layout_width="130dp"
        android:layout_height="130dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView"
        fresco:placeholderImage="@drawable/search_white_24dp" />

JSON 我正在使用(更多 Google Play 图书缩略图):https://pastebin.com/hq4AFMRb

如果您需要更多信息,请告诉我(例如 XML)。如果可行,我不介意使用不同的第三方库(包括 Glide 或 Picasso)。

看起来,不受保护的流量不再可用于向 Google 图书服务器发出请求(请注意下面的 Glide 日志):

08-09 22:31:06.428 7606-7606/com.sandbox.test W/Glide: Load failed for http://books.google.com/books/content?id=F1wgqlNi8AMC&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_api with size [2392x2392] class com.bumptech.glide.load.engine.GlideException: Failed to load resource There were 2 causes: java.io.IOException(Cleartext HTTP traffic to books.google.com not permitted) java.io.FileNotFoundException(No content provider: http://books.google.com/books/content?id=F1wgqlNi8AMC&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_api) call GlideException#logRootCauses(String) for more detail Cause (1 of 2): class com.bumptech.glide.load.engine.GlideException: Fetching data failed, class java.io.InputStream, REMOTE There was 1 cause:

因此,您只需将 "S" 信从 API 添加到图片 url 协议,然后通过 HTTPS

就我而言,这成功了。