2016-12-21 2 views
2

Из-за того, что класс cache установлен в final, я не могу написать свою собственную реализацию, и мне нужно зашифровать кеш, потому что это конфиденциальные данные. Я бы попробовал с перехватчиком, но нет ничего похожего на CacheResponseInterceptor, чтобы зашифровать и расшифровать его. Как это сделать, используя OkHttp?Encrypt cache OkHttp android

+0

Я подозреваю, что это невозможно, на основе [данного комментария] (https://github.com/square/okhttp/issues/1605#issuecomment-162013369). Возможно, вам придется отключить кэширование OkHttp и выполнить собственное кэширование. – CommonsWare

+0

@CommonsWare да, но как? Возможно ли создать собственный ответ на кеш? Если бы я сделал это в перехватчике, я думаю. –

+1

Нет, я имею в виду делать собственное кэширование вне OkHttp. Вы отключите кеш OkHttp. Когда вы получаете ответ, вы пишете это и соответствующие метаданные (например, заголовки кеша) в зашифрованное хранилище данных. Когда вам нужно будет сделать запрос, сначала проверьте свой зашифрованный хранилище данных, прежде чем прикасаться к OkHttp, и используйте только OkHttp, если ваш собственный кеш устарел или не имеет этих данных. Это боль, и [я добавил ваш запрос в список желаний OkHttp 4.0] (https://github.com/square/okhttp/issues/2903), FWIW. – CommonsWare

ответ

0

@CommonsWare Это не так практично, как хотелось, но, наконец, мы решили не зашифровывать его. Данные не достаточно чувствительны, чтобы терять время в этом обходном пути. Спасибо, что добавили его в список пожеланий. Надеюсь, они включили его в следующий выпуск.