【问题标题】: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)
我们有一个结果