Comment décrypter une réponse json avec des données encodées gzip en flutter?
La réponse Json a des objets chiffrés qui doivent être déchiffrés pour obtenir le processus réel. Dans Android, GZip a été utilisé. Comment puis-je y parvenir? L'exemple Json est comme mentionné ci-dessous. Toute aide est vraiment appréciée.
{
"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"
}
En gros, comment décrypter une chaîne Gzip. Le même processus a été fait dans Android, mais je suis nouveau pour flutter Android code java est joint. Je veux réaliser quelque chose comme ça en papillonnant
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 "";
}
}
En chemin, j'ai essayé était
List<int> data = utf8.encode(zipText);
var deCompressedString = GZipDecoder().decodeBytes(data);
print(deCompressedString);
Quelle exception lancer
Unhandled Exception: FormatException: Invalid GZip Signature
Réponses
1 ch271828n
Pour déchiffrer zippé: Comment décoder une réponse Gzip Http dans Flutter?
ÉDITER
décompresser comme ça
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 "";
}
}