Получил небольшую проблему atm. для моего обновления «inapp» я загружаю новый .apk с кодировкой base64 из моего веб-пространства. У меня функционал сильно упал, это код без декодирования.
public void onResponse(Call call, Response response) throws IOException {
if(response.isSuccessful()){
ResponseBody body = response.body();
BufferedSource source = body.source();
source.request(Long.MAX_VALUE);
Buffer buffer = source.buffer();
String rString = buffer.clone().readString(Charset.forName("UTF-8"));
Log.i("Test: ", AppUtils.decodeBase64(rString));
if(rString.equals("xxx")){
EventBus.getDefault().post(new KeyNotValid());
dispatcher.cancelAll();
}else{
EventBus.getDefault().post(new SaveKey(apikey));
BufferedSink sink = Okio.buffer(Okio.sink(myFile));
sink.writeAll(source);
sink.flush();
sink.close();
}
}
}
Буфер/журнал на самом деле не нужен, он просто используется для проверки ответа во время тестирования.
Как мне расшифровать байты, прежде чем я запишу их в приемник? Пробовал делать через. ByteString, но я не смог найти способ записать декодированную строку обратно в BufferedSource.
Большинство альтернатив довольно медленные, такие как повторное открытие файла после этого, чтение байтов в память, декодирование и запись их обратно.
Был бы очень признателен за любую помощь в этом
ваше здоровье