使用Picasso的自定义下载器

Dif*_*ffy 6 android image picasso

我必须从URL下载图像,该URL需要一些标题(用户名,密码)以及请求.所以我正在使用这里给出的代码.但调用此函数会产生错误

java.lang.NoClassDefFoundError: com.squareup.okhttp.OkHttpClient
at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:72)
Run Code Online (Sandbox Code Playgroud)

我正在使用Picasso 2.3.3和okhttp-urlconnection-2.0.0-RC2库这个问题也在这篇文章中提出但是改为2.3.2不起作用.

Vin*_*y K 8

你的项目中是否包含OkHttp?如果没有,问题是你正在使用OkHttpDownloader.您可以在项目中包含OkHttp库,也可以在下面添加UrlConnectionDownloader.

这是我最终得到的结果.

public static Picasso getImageLoader(Context ctx) {
    Picasso.Builder builder = new Picasso.Builder(ctx);

    builder.downloader(new UrlConnectionDownloader(ctx) {
        @Override
        protected HttpURLConnection openConnection(Uri uri) throws IOException {
            HttpURLConnection connection = super.openConnection(uri);
            connection.setRequestProperty("X-HEADER", "VAL");
            return connection;
        }
    });

    return builder.build();
}
Run Code Online (Sandbox Code Playgroud)