如何使用 OkHttp 3.2.0 在 Picasso 2.5.2 中添加基本身份验证

How to add Basic Authentication in Picasso 2.5.2 with OkHttp 3.2.0

我正在使用 picasso 2.5.2 库从远程服务器下载位图,图像 url 需要 header 中的基本身份验证。

我已经尝试了以下 SO ansers,但是 none 它们可以与最新的 picasso 和 OkHttp 库一起使用。

Answer - 1

Answer - 2

Answer - 3

提前致谢。

根据您的方案和情况,尝试使用身份验证器配置 OkHttp3 客户端:

    OkHttpClient okHttpClient = new OkHttpClient.Builder()
            .authenticator(new Authenticator()
                {
                    @Override
                    public Request authenticate(Route route, Response response) throws IOException
                    {
                        String credential = Credentials.basic("user", "pass");
                        return response.request().newBuilder()
                                .header("Authorization", credential)
                                .build();
                    }
                })
            .build();

然后,使用该客户端来构建您的 Picasso 对象,但是对于 okhttp3,您将不得不使用 OkHttp3Downloader,如下所示:

    Picasso picasso = new Picasso.Builder(context)
        .downloader(new OkHttp3Downloader(okHttpClient))
        .build();

您可以从 https://github.com/JakeWharton/picasso2-okhttp3-downloader

获取 OkHttp3Downloader