Использование Cache-Control с AlamoFire - PullRequest
0 голосов
/ 25 марта 2020

Я запутался с Cache-Control и CachePolicy, установленными в URLRequest . Он не ведет себя так, как я ожидал.

Я хочу иметь возможность использовать для доступа к моим данным в течение 1 дня после того, как их извлекли хотя бы один раз. (Например, если я отключу Wi-Fi, данные все равно будут доступны)

Моя проблема возникает, когда я указываю Cache-Control, AlamoFire не кэширует мои данные при удалении inte rnet. Но когда я не отправляю cache-control, он работает как положено (возвращать данные, когда нет Wi-Fi), но я нигде не указал, что хочу сохранить его 1 день ...

        let url: URL! = URL(string: baseUrl+requestPath)
        var request = URLRequest(url: url)
        request.httpMethod = requestMethod.rawValue
        request.cachePolicy = .useProtocolCachePolicy
        if let timoutInterval = timeoutInterval {
            request.timeoutInterval = timoutInterval
        }
        if httpBody != nil {
            request.httpBody = try! JSONSerialization.data(withJSONObject: httpBody ?? [:])
        }

        if let cacheControl = self.cacheControl {
            request.addValue("max-age=60000", forHTTPHeaderField: "Cache-Control")
        }

        return request
    }
...