【问题标题】:Redirection Image url to use in image view using Picasso - Android使用毕加索在图像视图中使用的重定向图像 url - Android
【发布时间】:2021-12-25 14:19:57
【问题描述】:

我有一个简短的网址 - https://b.xxxxx.com/wzxuum2,它正在重定向到 s3 服务器以获取图像。我已经在项目中使用毕加索。但不幸的是,我无法使用上面的 Url 来显示图像。

我已经尝试过 -

Picasso.with(this)
             .load("https://b.xxxxx.com/wzxuum2")
             .placeholder(R.drawable.qr_temp)
             .into(qr_img)

val builder = Picasso.Builder(this)
        builder.downloader(OkHttpDownloader(this))
        builder.build().load("https://b.xxxxx.com/wzxuum2").into(qr_img)

参考这里 - https://github.com/square/picasso/issues/463

但它不起作用, 任何帮助将不胜感激。

【问题讨论】:

标签: android kotlin picasso


【解决方案1】:

当我检查您的网址时,我看到重定向转到标题,因此您可以从那里获取并发出新请求。可以使用response.isRedirect 检查重定向,但它总是返回 false,因此只能通过标头检查工作。

val picasso = Picasso.Builder(applicationContext)
                .downloader(OkHttp3Downloader(OkHttpClient.Builder().addInterceptor { chain ->
                    var request = chain.request()
                    val response: Response = chain.proceed(request)
                    val redirectUrl = response.header("Refresh")
                    if (redirectUrl != null) {
                        val url = redirectUrl.substring(redirectUrl.indexOf("url") + 4, redirectUrl.length)
                        request = request.newBuilder()
                                .url(url).build()
                        chain.proceed(request)
                    } else {
                        response
                    }

                }.build()))
                .build()
        picasso.load("https://b.redbus.com/wzxuum2").into(imageView)

我们有一个结果

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 2016-07-31
    • 1970-01-01
    • 2021-07-26
    • 2019-07-31
    • 2021-02-21
    • 1970-01-01
    相关资源
    最近更新 更多