无法在使用Picasso和OkHttp的情况下设置Retrofit超时时间

3

我无法为Retrofit设置超时。以下代码在Picasso上无法正常工作。我得到了一个空白屏幕,数据和图像没有加载。如何在Gradle中修复它:

compile 'com.squareup.picasso:picasso:2.3.2'
compile 'com.squareup.retrofit:retrofit:1.9.0'

代码:

    final OkHttpClient okHttpClient = new OkHttpClient();
    okHttpClient.setReadTimeout(60, TimeUnit.SECONDS);
    okHttpClient.setConnectTimeout(60, TimeUnit.SECONDS);


        RestAdapter restAdapter = new RestAdapter.Builder()
.setClient(new OkClient(okHttpClient))
          .setEndpoint(URL).build();                                     
        myapi myapi_rest = restAdapter.create(myapi.class);
        myapi_rest.my_call(
                sno,
                new Callback<Response>() {

                    @Override
                    public void success(Response result, Response response) {


                    }

                    @Override
                    public void failure(RetrofitError error) {
                        // Log.i("Failure", "Error"+error.getMessage());

                    }
                });

Gradle:

compile 'com.squareup.picasso:picasso:2.3.2'
compile 'com.squareup.retrofit:retrofit:1.9.0'


    compile "com.squareup.okhttp:okhttp:1.6.0"
    compile "com.squareup.okhttp:okhttp-urlconnection:1.6.0"

你是想要实现类似这个的功能吗:http://stackoverflow.com/a/26941180/2264234 - SemaphoreMetaphor
@SemaphoreMetaphor 不是在 Picasso 中,而是在 Retrofit 中。基本上我想要增加 Retrofit 的超时时间。但是我在 okhttp、picasso 和 retrofit 之间存在库冲突。我想知道哪三个库版本可以一起编译? - jason
那是一个非常过时的okhttp版本。为什么?顺便说一下,您必须在OkHttpClient中设置超时时间。 - EpicPandaForce
@EpicPandaForce,你能分享一个更新的版本吗?其中retrofit、picasso和okhttp可以一起工作,并且有超时功能吗? - jason
1个回答

1
要将您的OkHttpClient与Picasso一起使用,您需要使用以下代码。
// Create the downloader for Picasso to use
OkHttpDownloader downloader = new OkHttpDownloader(okHttpClient);
Picasso picasso = new Picasso.Builder(context).downloader(downloader).build();

指定您为其指定超时的OkHttpClient。


我不想只使用Picasso,而是仅使用Retrofit。但是,正如我上面提到的,所有gradle编译版本之间存在冲突。我该如何在Retrofit中使用Okhttp,并且这三个版本应该是哪个版本才能顺利工作? - jason
1
添加:compile 'com.squareup.retrofit:retrofit:1.9.0' compile 'com.squareup.okhttp:okhttp:2.7.0' compile 'com.squareup.picasso:picasso:2.5.2' - jason
OkHttpDownloader对象不会使用okHttpClient对象,它会使用Picasso对象。我正在使用'com.squareup.picasso:picasso:2.5.2'库。 - Rohit Bandil
也许这已经随着OkHttp3的推出而改变了。 - EpicPandaForce

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接