flutter/dart:如何在 flutter 中解压缩/膨胀 zlib 二进制字符串

2024-01-26

我在 Nodejs 服务器上使用 pako 包,并将压缩的二进制字符串从服务器发送到我的 flutter 客户端。我无法在颤动客户端上对其进行解压/充气。我尝试过库的组合

我的服务器 NodeJS 代码:

    var pako = require('pako');
    let buffer = pako.deflate(JSON.stringify(userModels), { to: 'string' });
    //Server code for sending to client

我的颤振代码:

import 'dart:io';
import 'dart:convert';
List<int> gzipBytes = serverResponse.data.codeUnits;
List<int> stringBytes = gzip.decode(gzipBytes);
var data = utf8.decode(stringBytes);

我收到以下异常..

在 1,725 毫秒内重新启动应用程序。 E/颤振 (25340): [错误:flutter/lib/ui/ui_dart_state.cc(148)] 未处理的异常: InternalError:“过滤器错误,错误数据”E/flutter (25340):#0
_FilterImpl.processed (dart:io-patch/filter_patch.dart:11:32) E/flutter (25340): #1 _FilterSink.addSlice (dart:io/data_transformer.dart:610:29) E/flutter (25340): #2
_FilterSink.add (dart:io/data_transformer.dart:596:5) E/flutter (25340): #3 ZLibDecoder.convert (dart:io/data_transformer.dart:465:9) E/flutter (25340): #4
编解码器.解码(dart:转换/编解码器.dart:26:34)


您不显示如何接收数据,但不通过字符串。例如,如果使用package:http, use:

var bytes = response.bodyBytes;

接下来,您似乎不应该使用gzip, 反而zlib;

var inflated = zlib.decode(bytes);
var data = utf8.decode(inflated);
json.decode(data);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

flutter/dart:如何在 flutter 中解压缩/膨胀 zlib 二进制字符串 的相关文章

随机推荐

  • 使用 Sendgrid 在 Azure 上发送简单的电子邮件

    我正在尝试使用发送电子邮件SendGrid on Azure 我按照以下说明进行操作 https learn microsoft com tr tr azure sendgrid dotnet how to send email https
  • bash / cli 中的视觉选择

    有没有办法制作bash use 视觉选择 for 文本替换 标准文本输入约定不起作用 如果按 Shift 向左箭头 则应在视觉上选择左侧的字符 如果按 Ctrl 向左箭头 光标应移动到上一个单词的开头 如果按 Shift Ctrl 向左箭头
  • 未找到主类,IntelliJ 正在构建 jar

    当我尝试运行在 IntelliJ 中创建的 jar 文件时遇到问题 我按照此处列出的步骤进行操作 如何正确从 IntelliJ 构建 jar https stackoverflow com questions 1082580 how to
  • mysql 中的月份星期函数

    我正在寻找一个简单的函数来在 mysql 查询中获取该月的第几周 而不是一年中的简单星期 我能想到的最好的办法是 WEEK dateField WEEK DATE SUB dateField INTERVAL DAYOFMONTH date
  • 设置无线电输入的样式

    所以我在设计单选按钮时遇到了很大的麻烦 因此我设法让它在 Chrome 中完美运行 在 Firefox 中运行得很好 在 IE 中则完全不行 This is the expected look in Chrome This is how i
  • bash:如何传递包含特殊字符的密码

    我有一个 bash 脚本来从网站下载数据 为此 我需要使用网站的 java 客户端传递用户名和密码 我的密码包含一个导致问题的特殊字符 我已经尝试了通常的解决方案 但没有一个有效 bin sh cwd MYPASSWORD password
  • 浏览器只对域名或整个 url 进行 punycode 编码吗?

    我正在阅读有关 IDN 同形异义词攻击的内容 但没有找到确切说明浏览器是否仅在 punycode 中编码域或包含 URL 的其余部分 路径和查询 所以我的问题是流行的浏览器之一 FF IE Chrome Safari Opera 是否使用
  • 使用python发送gmail失败

    1 点错误 I did pip install smtplib 然后它说 Could not find a version that satisfies the requirement smtplib from versions No ma
  • python collections.defaultdict() 编译错误

    下面的代码足够简单明了 但在编译时会产生错误 import string import collections create dictionary with alphabets as keys and empty values list a
  • mpl_finance 无法将 -100000 转换为日期

    我正在尝试使用 mpl finance 制作一个简单的烛台 ohlc 图表 在他们的网站上 它说 Candlestick ohlc 方法的引用参数中的第一个元素是日期 它说它们必须采用浮点日期格式 然而 当我使用 date2num 时 它会
  • 如何模拟按键

    我了解 AutoHotKey 但我想制作自己的程序 例如让它每 10 秒按一次 F5 我搜索了互联网和 Stack Overflow 但没有找到解决方案 有没有办法用C实现 我正在使用并定位 Windows 8 1 你想使用SendInpu
  • 无法为具有多个返回值的查询创建 TypedQuery

    我正在使用以下 JPA 查询 并且收到 java lang IllegalArgumentException Cannot create TypedQuery for query with more one return Exception
  • 设置DataGridView.DataSource后获取空白行

    有人能告诉我为什么运行此代码后会出现空白行吗 dataGridView AutoGenerateColumns false must be false else getting additional columns from SQL dat
  • Zend_Form_Element_MultiSelect 元素定义

    有什么方法可以定义默认情况下选择 Zend Form Element MultiSelect 中的哪些选项 element new Zend Form Element MultiCheckbox foo array multiOptions
  • 在 C# 中为同步/异步任务添加重试/回滚机制的最佳方法是什么?

    想象一个 WebForms 应用程序 其中有一个名为 CreateAll 的主方法 我可以将方法任务的过程逐步描述如下 1 存储到数据库 更新 创建数据库项3 4次 2 开始新线程 3 Result1 调用肥皂服务 并通过使用超时阈值检查状
  • 在代码隐藏中动态更改 XAML 样式,以便应用该样式的控件也反映更改

    我希望能够从 WPF 窗口中的 cs 文件设置样式属性 和值 我的问题是 如果我有 30 个矩形 我希望所有矩形都具有相同的样式 并且我不想单独更新所有矩形 我希望将它们全部设置 在 xaml 文件中 为相同的样式 然后更新样式以使其看起来
  • 如何将 Unix 纪元转换为时间戳

    我是 postgresql bot 的新手 而不是一般的 sql 我有一个表 我需要从中读取值 其中一列是一个 unix 时间戳 我想将其转换为更易于阅读的格式 因此我发现了这一点 SELECT lt dw up to char uxts
  • Spring-Boot:如何访问多个 JMS 代理 URL

    在 Spring Boot 中 默认的 ActiveMQ JMS 属性是 spring activemq broker url tcp 192 168 1 210 9876 spring activemq user admin spring
  • 如何判断 mysql_real_escape_string 是否正常工作

    正如标题中所说 我如何判断 mysql real escape string 是否正常工作 而无需等待被黑客攻击 检查从中返回的值 向它发送一些应该转义的文本 例如Ed O Neil 这应该返回为Ed O Neil or Ed O Neil
  • flutter/dart:如何在 flutter 中解压缩/膨胀 zlib 二进制字符串

    我在 Nodejs 服务器上使用 pako 包 并将压缩的二进制字符串从服务器发送到我的 flutter 客户端 我无法在颤动客户端上对其进行解压 充气 我尝试过库的组合 我的服务器 NodeJS 代码 var pako require p