Пикассо добавляет заголовок If-none-match при использовании метода извлечения - PullRequest
0 голосов
/ 17 мая 2019

Когда я пытаюсь использовать метод Picasso fetch (), он сохраняет их в кеш, как и ожидалось, но некоторые из них нет - я получаю код ответа 304 при попытке их извлечь.К вашему сведению, у меня есть сценарии загрузки тысяч фотографий

Ниже приведен мой код, который я использую для извлечения и кэширования заданных URL-адресов фотографий:

  private fun syncPhotos(urls: List<String>): Completable {
    return Completable.create { emitter ->
      if (urls.isEmpty()) {
        emitter.onComplete()
      } else {
        val picasso = Picasso.get()
        val counter = AtomicInteger(urls.size)
        for (url in urls) {
          picasso.load(url)
              .resize(SQUARE_PHOTO_SIDE, SQUARE_PHOTO_SIDE)
              .fetch(object : Callback {
                override fun onSuccess() {
                  Timber.d("Photo caching success (counter=$counter)")
                  if (counter.decrementAndGet() == 0) {
                    emitter.onComplete()
                  }
                }

                override fun onError(e: Exception?) {
                  Timber.e(e, "Photo caching error (counter=$counter)")
                  if (counter.decrementAndGet() == 0) {
                    emitter.onComplete()
                  }
                }
              })
        }
      }
    }
  }

Таким образом, большинство из них выбираются, но странным образомпри попытке синхронизации некоторые запросы заполняются дополнительным заголовком «If-none-match» со странным значением id, например ex."c9a0fc4ec96738c08270054d78a3f96d"

Есть что-то, чего мне не хватает?

...