Bagaimana cara mendekripsi respons json dengan data yang dikodekan gzip di flutter?
Jan 15 2021
Respons Json telah mengenkripsi objek yang harus didekripsi untuk mendapatkan proses yang sebenarnya. Di Android GZip digunakan. Bagaimana saya bisa mencapai ini Sampel Json adalah seperti yang disebutkan di bawah ini. Bantuan apa pun sangat dihargai.
{
"Data": "1.´ABCD´1150275,11028´01-Jan-2021´8,000.00´",
"Data": [
{
"Element": "8iMAAB+LCAAAAAAABADt1T8zBxwHgkefKcGh98Zcdz8FSqj9DMzK4d+L0Nj1tveNR2w6M8rRs3PJWBFDy"
},
{
"Element": "B1AV4bGp6JzQJI8ChnxzixrlT8vKnYHPwRM8zykKVn2gkceAFdxMwU0to"
}
],
"Status": 1,
"Msg": "Success",
"APIVersion": "1.4"
}
Pada dasarnya cara mendekripsi string Gzip. Proses yang sama dilakukan di android, tetapi kode java Android baru yang bergetar terpasang. saya ingin mencapai sesuatu seperti itu dalam flutter
public static String decompress(String zipText) throws IOException {
byte[] compressed = Base64.decode(zipText, Base64.DEFAULT);
if (compressed.length > 4) {
GZIPInputStream gzipInputStream = new GZIPInputStream(new ByteArrayInputStream(compressed, 4,compressed.length - 4));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
for (int value = 0; value != -1; ) {
value = gzipInputStream.read();
if (value != -1) {
baos.write(value);
}
}
gzipInputStream.close();
baos.close();
return new String(baos.toByteArray(), StandardCharsets.UTF_8);
} else {
return "";
}
}
Di jalan saya mencoba itu
List<int> data = utf8.encode(zipText);
var deCompressedString = GZipDecoder().decodeBytes(data);
print(deCompressedString);
Yang mana pengecualian lemparan
Unhandled Exception: FormatException: Invalid GZip Signature
Jawaban
1 ch271828n Jan 15 2021 at 21:55
Untuk dekripsi di-zip: Bagaimana cara memecahkan kode Respons Http Gzip di Flutter?
EDIT
dekompresi seperti ini
String decompress(String zipText) {
final List<int> compressed = base64Decode(zipText);
if (compressed.length > 4) {
Uint8List uint8list = GZipDecoder().decodeBytes(compressed.sublist(4, compressed.length - 4));
// print( String.fromCharCodes(uint8list));
return String.fromCharCodes(uint8list);
} else {
return "";
}
}
Selalu Menjadi Ancaman: Mengapa Orang Berkulit Coklat dan Hitam Tidak Bisa Nyaman di Amerika Serikat
Taylor Sheridan Baru Menambahkan 1 Bintang 'Yellowstone' Favoritnya ke Pemeran 'Lawmen: Bass Reeves'