无法在Android上使用Picasso下载图像

时间:2018-07-20 20:41:16

标签: android picasso

我正在尝试使用毕加索https://s3-media4.fl.yelpcdn.com/bphoto/94E7Ti0RTDbA6mGotZw5DA/o.jpg

下载以下图片

我可以在浏览器中看到它。但是,当我尝试使用Picasso下载它时,出现错误(onError()方法中的断点被命中)。

这是我的代码的一部分:

final RequestCreator rc = with(context).load(fullImagePath);

if (fit != null && fit) {
    rc.fit();
}

// If no callback listener exists, create one.
if (callbackListener == null) {
    callbackListener = new Callback() {

        @Override
        public void onSuccess() {
            L.p("onSuccess retrieving " + fullImagePath);
        }

        @Override
        public void onError() {
            // Something went wrong
            L.p("Error retrieving " + fullImagePath);
        }

    };
}

rc.into(fImageView, callbackListener);

我发现了这一点:https://github.com/square/picasso/issues/500,但是它有点过时了,OkHttpClient类不再具有setProtocols()方法。

谢谢!

2 个答案:

答案 0 :(得分:0)

将链接插入为“ http”而不是“ https”即可。

答案 1 :(得分:0)

以下代码对我来说都适用于http和https链接。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    imageView = (ImageView) findViewById(R.id.imageView);

    String https = "https://s3-media4.fl.yelpcdn.com/bphoto/94E7Ti0RTDbA6mGotZw5DA/o.jpg";
    String http = "http://www.sunseed.org.uk/projectpack/files/2014/05/Library_1400_800-1200x686.jpg";
    Picasso.with(this)
            .load(https)
            .placeholder(R.drawable.me)
            .into(imageView);
}

还请确保您在清单文件中写入以下权限:

<uses-permission android:name="android.permission.INTERNET" />

还要在build.gradle文件中写以下内容

implementation 'com.squareup.picasso:picasso:2.5.2'