从 Picasso 重定向 URL

Get redirected URL from Picasso

我正在使用以下代码获取图像:

Picasso.with(mContext)                              
    .load(myImage.getUrl())
    .fetch();

myImage.getUrl() returns 来自我的服务器的 URL,它将重定向到另一台服务器上托管的实际图像。有没有办法把 URL 我的服务器 returns 抓到毕加索?我知道我可以在 .fetch() 中使用 Callback,但我只知道这些。我也在用 OkHttp。

OkHttp 允许您不自动跟随重定向:

OkHttpClient client = new OkHttpClient();
client.setFollowRedirects(false);

您可以阅读响应,获取重定向 URL,然后手动将其转发给 Picasso。

编辑:

Interceptor也是可行的:

OkHttpClient client = new OkHttpClient();
client.interceptors().add(new Interceptor() {
  @Override
  public Response intercept(Chain chain) throws IOException {
    // process response here
    return response;
  }
});

我用这段代码修复了它。

val downloader = OkHttp3Downloader(context)
Picasso.Builder(context).downloader(downloader).build()

检查这里的详细信息。 https://github.com/square/picasso/issues/463

添加okhttp依赖

compile 'com.squareup.okhttp:okhttp:2.5.0'

并尝试此代码

  Picasso.Builder builder = new Picasso.Builder(context);
  builder.downloader(new OkHttpDownloader(context));
  builder.build()
 .load(path.trim())
 .into(imageView);

这段代码对我有用