簡體   English   中英

Glide 從 URl 加載圖像

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM