[英]Glide load an image from an URl
我正在嘗試使用 Glide 從 Url 加載圖像:
Glide.with(getContext()).load(urlImage).error(R.drawable.ic_profile_default).into(imgUser);
這是我得到的錯誤:
W/Glide: Load failed for https:www.cerberusenlinea.com/images/profile/16/13/HOLCIM.jpeg with size [204x204]
class com.bumptech.glide.load.engine.GlideException: Failed to load resource
There was 1 cause:
javax.net.ssl.SSLHandshakeException(java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.)
call GlideException#logRootCauses(String) for more detail
問題是你正試圖從一個不安全的網站獲取圖像,所以 glide 會阻止你。 要解決此問題,您可以創建一個自定義信任管理器,但這非常危險,因為您會受到中間人攻擊。 如果您想遵循這條路線,我建議您閱讀此Trust Anchor not found for Android SSL Connection
另一種解決方案,我建議可以下載圖像並將其托管在您的服務器或免費服務(您可以找到很多),例如https://imgur.com/upload或其他人
站點 www.cerberusenlinea.com 的 HTTPS 配置存在鏈問題。
您可以在 Qualys 免費掃描儀中驗證它: https://www.ssllabs.com/ssltest/analyze.html?d=www.cerberusenlinea.com
Android 需要完整的證書鏈才能使用內容。
官方文檔說:
大多數公共 CA 不直接簽署服務器證書。 相反,他們使用他們的主 CA 證書(稱為根 CA)來簽署中間 CA。 他們這樣做是為了讓根 CA 可以離線存儲,以降低泄露風險。 然而,像 Android 這樣的操作系統通常只直接信任根 CA,這在服務器證書(由中間 CA 簽名)和知道根 CA 的證書驗證者之間留下了短暫的信任差距。 為了解決這個問題,在 SSL 握手期間,服務器不會僅向客戶端發送它的證書,而是通過任何必要的中間人從服務器 CA 發送證書鏈以到達受信任的根 CA。
該文檔提到了一些替代方案,以便從應用程序方面解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.