Из-за того, что класс cache установлен в final, я не могу написать свою собственную реализацию, и мне нужно зашифровать кеш, потому что это конфиденциальные данные. Я бы попробовал с перехватчиком, но нет ничего похожего на CacheResponseInterceptor
, чтобы зашифровать и расшифровать его. Как это сделать, используя OkHttp
?Encrypt cache OkHttp android
2
A
ответ
0
@CommonsWare Это не так практично, как хотелось, но, наконец, мы решили не зашифровывать его. Данные не достаточно чувствительны, чтобы терять время в этом обходном пути. Спасибо, что добавили его в список пожеланий. Надеюсь, они включили его в следующий выпуск.
Я подозреваю, что это невозможно, на основе [данного комментария] (https://github.com/square/okhttp/issues/1605#issuecomment-162013369). Возможно, вам придется отключить кэширование OkHttp и выполнить собственное кэширование. – CommonsWare
@CommonsWare да, но как? Возможно ли создать собственный ответ на кеш? Если бы я сделал это в перехватчике, я думаю. –
Нет, я имею в виду делать собственное кэширование вне OkHttp. Вы отключите кеш OkHttp. Когда вы получаете ответ, вы пишете это и соответствующие метаданные (например, заголовки кеша) в зашифрованное хранилище данных. Когда вам нужно будет сделать запрос, сначала проверьте свой зашифрованный хранилище данных, прежде чем прикасаться к OkHttp, и используйте только OkHttp, если ваш собственный кеш устарел или не имеет этих данных. Это боль, и [я добавил ваш запрос в список желаний OkHttp 4.0] (https://github.com/square/okhttp/issues/2903), FWIW. – CommonsWare