Как изменить время кеширования Alamofire по умолчанию, если это возможно? - PullRequest
0 голосов
/ 10 июня 2019

В настоящее время я выполняю вызов API, используя Alamofire , и я хочу, чтобы ответ был кэширован для повторного использования (которое Alamofire предоставляет по умолчанию), НО только в течение часа максимум изатем он должен сделать еще один вызов API после указанного периода времени.

AF.request("someUrl...")
  .validate().responseJSON { response in
       switch response.result {
             case .success:
                // some logic
             case .failure(let error):
                print(error)
       }
}

Все выглядит хорошо, но я не могу найти способ узнать или изменить время кеширования, используя Alamofire .

Кто-нибудь может подсказать, как я могу изменить время кэширования и интегрировать его с приведенным выше кодом?

Заранее спасибо, спасибо за время и помощь.

1 Ответ

0 голосов
/ 10 июня 2019

Вы должны обработать это самостоятельно. Это означает, что вам нужно отслеживать время последнего кэшированного изображения, и если предыдущий запрос был старше, чем ваш лимит времени, то удалите кэшированный ответ перед повторным выполнением этого запроса, например:

let urlRequest = URLRequest(url: URL(string: "someUrl...")!)

URLCache.shared.removeCachedResponse(for: urlRequest) // remove older cache

// now request again, with your method.

AF.request("someUrl...")
.validate().responseJSON { response in
   switch response.result {
         case .success:
            // some logic
         case .failure(let error):
            print(error)
   }
}
...