取款机有点问题。对于我的“inapp”-更新即时通讯从我的网络空间下载新的 base64 编码的 .apk。我的功能差不多了,这是没有解码的代码。
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();
}
}
}
Buffer/Log 并不是真正需要的,只是在测试期间使用它来检查响应。
在将字节写入接收器之前,我将如何解码它们?我尝试通过这样做。ByteString,但我找不到将解码的字符串写回 BufferedSource 的方法。
大多数替代方案都非常慢,例如之后重新打开文件,将字节读入内存,解码并将它们写回。
非常感谢您对此的任何帮助
干杯