วิธีถอดรหัสการตอบสนอง json ด้วยข้อมูลที่เข้ารหัส gzip ในการกระพือปีก?
การตอบสนองของ Json ได้เข้ารหัสอ็อบเจ็กต์ที่ต้องถอดรหัสเพื่อให้ได้กระบวนการจริง ใน Android ใช้ GZip ฉันจะบรรลุสิ่งนี้ได้อย่างไรตัวอย่าง Json ดังที่กล่าวไว้ด้านล่างความช่วยเหลือใด ๆ ที่ได้รับการชื่นชมจริงๆ
{
"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"
}
วิธีการถอดรหัสสตริง Gzip โดยทั่วไป กระบวนการเดียวกันนี้ทำใน Android แต่ฉันยังใหม่กับรหัส java ของ Android ที่กระพือปีก ฉันต้องการบรรลุบางสิ่งเช่นนั้นด้วยความกระพือปีก
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 "";
}
}
ระหว่างทางที่ฉันพยายามคือ
List<int> data = utf8.encode(zipText);
var deCompressedString = GZipDecoder().decodeBytes(data);
print(deCompressedString);
ข้อยกเว้นการโยนใด
Unhandled Exception: FormatException: Invalid GZip Signature
คำตอบ
1 ch271828n
สำหรับการถอดรหัสซิป: จะถอดรหัสการตอบสนอง Gzip Http ใน Flutter ได้อย่างไร?
แก้ไข
คลายการบีบอัดเช่นนี้
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 "";
}
}