Изображение Picasso 2.5.2 не загружается с сетевой политикой

Я пытаюсь загрузить изображение с URL-адреса, но добавляю токен авторизации. Пикассо вообще не хочет загружать его, если я добавляю networkPolicy(NetworkPolicy.OFFLINE), есть ли с ним какие-нибудь проблемы?

мой код:

  OkHttpClient client = new OkHttpClient.Builder()
                .addInterceptor(new Interceptor() {
                    @Override
                    public okhttp3.Response intercept(Chain chain) throws IOException {
                        Request newRequest = chain.request().newBuilder()
                                .addHeader("Authorization", "Bearer " + userPrefs.accessToken().get())
                                .build();
                        return chain.proceed(newRequest);
                    }
                })
                .build();

        Picasso picasso = new Picasso.Builder(getActivity())
                .downloader(new OkHttp3Downloader(client))
                .build();
        picasso
                .load(URL)
                .networkPolicy(NetworkPolicy.OFFLINE)
                .into(ivUserImage, new Callback() {
                    @Override
                    public void onSuccess() {
                        Toast.makeText(getActivity(), "+", Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onError() {
                        Toast.makeText(getActivity(), "-", Toast.LENGTH_SHORT).show();
                    }
                });

person test    schedule 18.04.2016    source источник


Ответы (2)


Да, это у нас есть три перечисления, которые нужно передать networkPolicy

NO_CACHE

Пропускает проверку кеша диска и вызывает загрузку по сети.

NO_STORE

Пропускает сохранение результата в кеш-памяти диска.

OFFLINE

Принудительно запрашивает только дисковый кеш, пропуская сеть.

Поэтому, если мы используем OFFLINE, он пропустит сеть.

Также прочтите API для Picasso

person Kathi    schedule 18.04.2016

Простой способ использования автономной политики

  Picasso.with( getApplicationContext() ).load( link ).networkPolicy( NetworkPolicy.OFFLINE ).placeholder( R.drawable.notification ).into( imageView, new Callback() {
                    @Override
                    public void onSuccess()
                    {
                    }
                    @Override
                    public void onError() {
                        Picasso.with( getApplicationContext() ).load( link ).placeholder( R.drawable.notification ).into( imageView );
                    }
                } );
person Sohaib Aslam    schedule 03.07.2018