如何使用 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
我正在使用 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