如何从 Dart http 调用返回 json / 如何完全使用流?

2023-11-22

这是我的代码,应该返回 json。我从这里改编了这段代码https://github.com/flutter/flutter/issues/15110

  Stream _defaultReturn(HttpClientResponse httpClientResponse) {
    Stream response = httpClientResponse.
                      transform(utf8.decoder).
                      transform(json.decoder).
                      asyncMap((json) => jsonDecode(json));
    return response;
  }

  Future<dynamic> get(String endpoint) async {
    HttpClientRequest httpClientRequest =
        await httpClient.getUrl(Uri.parse(_url + endpoint));
    _addCookies(httpClientRequest);
    final HttpClientResponse httpClientResponse =
        await httpClientRequest.close();
    return _defaultReturn(httpClientResponse);
  }

我已经设置了返回类型Stream into _defaultReturn因为智能感知告诉我那个巨大的东西给了我一个Stream。我实际上想接收一个 json (应该是一个地图)。我想我可能会消费或订阅这个流来获得一些有用的东西。但是,我认为将 json 解析为流没有用处。解析之前我不需要整个json吗?我不应该简单地将所有内容积累成一个String然后只需调用jsonDecode?

从 http 调用返回 json 的最有效方法是什么?以及如何做呢?


json.decoder将监听源流和always将其内容转换为just one Object,所以你可以用流返回它.first:

Future<Object> get(String endpoint) async {
  var httpClientRequest = await httpClient.getUrl(Uri.parse(_url + endpoint));
  _addCookies(httpClientRequest);
  final httpClientResponse = await httpClientRequest.close();
  return httpClientResponse
           .transform(utf8.decoder)
           .transform(json.decoder)
           .first;
}

然后你可以像这样使用它:

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

如何从 Dart http 调用返回 json / 如何完全使用流? 的相关文章

  • 使用 EditableText 进行 Flutter

    我正在尝试弄清楚如何在 Flutter 中使用 TextEditor 我有 卡片编辑器 基本上我希望能够处理相当于一段文本的内容 new EditableText autofocus true maxLines null backgroun
  • json 具有自动完成功能?

    我在用Jquery 自动完成 http docs jquery com Plugins Autocomplete autocomplete url or dataoptions 我也在使用 formatItem 我希望输出是
  • 如何在 PHP 中使用 file_get_contents 获取图像的 MIME 类型

    我需要获取图像的 MIME 类型 但我只有图像的正文file get contents 是否有可能获取 MIME 类型 是的 你可以这样得到它 file info new finfo FILEINFO MIME TYPE mime type
  • 条件必须具有 bool 静态类型

    有什么方法可以在这种情况下使用未来的布尔值 或者有更好的方法吗 Widget buildRow String pair final Future
  • 如何在 Django REST Framework 中序列化“对象列表”

    我需要一个序列化器来完成这样的事情 items 12 name item 1 66 name item 2 我应该如何声明我的序列化器才能得到这样的东西 这是否是一个有效的 JSON 还是应该如下所示 items name item 1 i
  • Dart 2.2 之后如何设置文字

    直到 2 2 才支持设置文字 如何在 Dart 2 2 之后设置文字 请随意发表评论 谢谢 class item t String name int weight int value main const List
  • 在 Play2 和 Scala 中解析没有数据类型的 JSON

    people name Jack age 15 name Tony age 23 name Mike age 19 这是我试图解析的 json 示例 我希望能够对每个人进行 foreach 操作并打印他们的姓名和年龄 我知道当 json 数
  • 如何在 Laravel 中使用 PUT http 动词提交表单

    我知道这个问题可能已经提出 但我就是无法让它发挥作用 如果有人可以帮助我 我将非常感激 我安装了 colletive form 但答案也可以是 html 表单标签 现在列出我的表格 我的路线和我的例外情况 Form model array
  • 在 Android 应用程序资源中使用 JSON 文件

    假设我的应用程序的原始资源文件夹中有一个包含 JSON 内容的文件 我如何将其读入应用程序 以便我可以解析 JSON See 开放原始资源 http developer android com reference android conte
  • 如何使用 Netty 连接到运行 HTTP 服务器的 UNIX 域套接字?

    我正在尝试使用 Netty 连接到 Docker UNIX 域套接字 到目前为止 这是我的尝试 PostConstruct public void init throws Exception io netty bootstrap Boots
  • JSON GSON.fromJson Java 对象

    我正在尝试将 Json 加载到我的班级中 public User this fbId 0 this email this name this thumb this gender this location this relationship
  • MySQL 与 PostgreSQL JSON 搜索功能

    我一直在寻找一篇博客文章或一个功能矩阵 通过 JSON 功能对 MySQL 和 PostgreSQL 进行比较 我找到了一个好的Postgres 的特征矩阵 https www postgresql org about featuremat
  • 如何使用 Objective-C 解析 JSON?

    我是 iPhone 新手 谁能告诉我解析此数据并获取活动详细信息 名字和姓氏的步骤 error false data activity id 35336 user id 1 user first name Chandra Bhusan us
  • 明文 HTTP 流量...不允许

    我的程序从用户那里获取一个 URL 因此它可以向互联网上的任何网站发出请求 我试图让这成为可能 我查找了有关 Android HTTP Cleartext 错误的所有答案 并做了这个 但它仍然不允许我连接我的测试本地 PHP 服务器 我在这
  • Firestore 是否有 Dart 接口 - 使用 API,如 https://firebase.google.com/docs/firestore/quickstart 中所示?

    此 Firestore 文档 https firebase google com docs firestore quickstart https firebase google com docs firestore quickstart 显
  • 向对象添加元素

    我需要填充一个 json 文件 现在我有这样的东西 element id 10 quantity 1 我需要添加另一个 元素 我的第一步是使用该 json 将该 json 放入对象类型中cart JSON parse 现在我需要添加新元素
  • 如何在颤动中添加行之间的空间?

    主要问题是我想在行之间添加一些空格 并且该行是SingleChildScrollView 我的小部件树 child SingleChildScrollView child Column mainAxisAlignment MainAxisA
  • 一个领域模型,多个 json 视图

    我们有一组域类 它们使用球衣服务通过 jackson 序列化为 json 我们目前正在使用 JAXB 对类进行注释 尽管我们并不局限于此 这很好用 但我们希望为不同的用例提供不同的类序列化 Web site 移动应用程序 管理工具 公共AP
  • Postman - 如何计算 JSON 响应中特定对象的出现次数

    我是 JSON 和 Postman 的新手 我相信我正在尝试做一些非常简单的事情 我创建了一个 GET 请求 它将获得如下所示的 JSON 响应 在下面的例子中我想得到count响应中所有 IsArchived 属性 这些属性的数量因响应而
  • ThreeJS无法加载Json文件

    首先 我已经读过这个问题 https stackoverflow com questions 17201888 three js exporter export object not working with jsonloader r58没

随机推荐

  • 在python中逐行复制文件

    我正在编写一个 python 程序来将文件逐行复制到新文件中 我的代码如下 其中我使用循环逐行复制文件 然而 由于文件中的行数可能会改变 有没有一种方法可以在 python 中逐行复制文件 而不使用依赖于数字的循环 而是依赖于 EOF 字符
  • WPF 中的多种变换效果

    我需要在 WPF 中通过 C 应用多重变换效果 我尝试了下面的代码 但我只看到最后一个效果 而不是两者一起 如果可以的话有什么线索吗 XAML
  • android 解析 .local (mDNS)

    我正在寻找一种使用 Android 4 0 4 解析 local 主机名的解决方案 由于 API 级别 15 没有 NSD 在设备上 我没有任何服务可供发现 只有主机名 您能提供一个如何解决的例子吗 我集成了 jmDNS 但不知道如何用于主
  • 如何将类数组应用于classList.contains?

    在我的 HTML 中 我有一个div像这样 div class a b c div 在我的 JavaScript 中 我有一系列我感兴趣的类 var goodClasses a c 在好的浏览器中 我可以使用很棒的classList功能来测
  • 在 FastAPI 中使用 `async def` 与 `def` 并测试阻塞调用 [重复]

    这个问题在这里已经有答案了 tl dr 以下哪个选项是正确的工作流程fastapi 如何以编程方式测试调用是否真正被阻止 而不是从浏览器手动测试 有没有压力测试延伸至uvicorn or fastapi 我有多个端点fastapi服务器 使
  • 使用 Python 2.7.x 连接到 Google Analytics 时出现 403 错误

    我尝试使用 Python 客户端 google api python client 从 Google Analytics API 获取数据 这是我使用的代码 from apiclient import discovery from oaut
  • jquery ui autocomplete _renderItem 似乎干扰 select 事件

    如果我使用 renderItem 我的选择事件将不起作用 如果我注释掉调用 renderItem 的最后一个代码块 则 select 事件将起作用 当我使用 renderItem 时 选择事件根本不会触发 var cache lastXhr
  • 删除一个数组中位于另一个数组中的项目

    我被我的剧本困住了 我需要比较两个数组 一个是查询的结果 另一个是文件的内容 Array1 Invoke Sqlcmd Query select name from person Array2 Get Content Myfile txt
  • 从“对等方重置连接”中恢复 Indy TCP 客户端

    在这种情况下我应该如何恢复 服务器崩溃 连接异常关闭 对几乎所有内容的调用都会导致 对等方重置连接 异常 我似乎已经通过在 except 块内的 TIdTCPClient 对象上调用 Disconnect 来修复它 但它会导致一个带有相同消
  • 如何检查辅助服务是否崩溃(Android Pie 现在在设置中显示此信息)?

    我现在发现安卓9了如果辅助功能服务停止工作 则显示信息 对于尝试利用辅助功能 API 的开发人员来说 这始终是一个痛苦 辅助功能看起来已启用 但服务已停止 为了让它恢复工作 需要关闭然后重新打开辅助功能 如果谷歌完全修复了这个问题 我会很高
  • AVRO 中的数据验证

    我是 AVRO 新手 如果这是一个简单的问题 请原谅 我有一个使用 AVRO 模式进行记录调用的用例 假设我有 avro 架构 name abc namepsace xyz type record fields name CustId ty
  • 既然他们停止为 Eclipse 开发 derby 插件,是否可以在 Eclipse 中使用 apache 的 derby ?

    我想使用 apache 中的 Derby 以便在我当前正在开发的桌面应用程序上包含数据库管理 不幸的是 我发现他们已经停止开发这个插件 并且我在网上阅读的所有教程都引用了这个插件 所以我的问题是 如何在 eclipse 上使用最新版本的 D
  • Jenkinsfile 中的故障后块不起作用

    我正在尝试使用并行步骤进行失败后操作 但它永远不会起作用 这是我的 Jenkins 文件 pipeline agent any stages stage test steps withMaven maven maven3 Maven ins
  • 如何在 LLDB 断点条件下使用堆栈内容?

    问题 我遇到过这样一种情况 我们在启动期间进行媒体播放 并且 objc exception throw 在此期间点击了大约 5 次 但总是被捕获 并且它是way媒体播放器对象的南边 我厌倦了 a 必须手动继续 n 次 或 b 必须禁用断点直
  • 将 Textview 添加到 FrameLayout 的确定位置

    我正在尝试添加一个textView to a frameLayout The TextView has wrap content属性 因此它会随着文本的增长而增长 我将其添加到FrameLayout有了这个功能 FrameLayout fi
  • Java中从磁盘备份和恢复sqlite到内存

    我正在尝试将 sqlite 文件读入内存以获得更好的性能 当关闭我的应用程序时 我想将其写回硬盘 我正在使用jdbc 3 7 2 Java 驱动程序 根据文档 我的代码看起来像 this conn DriverManager getConn
  • 如何使用自动布局在 MKAnnotation 中显示多行?

    我正在使用 Mapkit 如何多行输入MK注释视图 每个注释都有标题和副标题 我如何在以下的帮助下显示多行副标题自动布局 我找到了答案 请尝试我的答案 我们只需要编写代码 MKAnnotationView mapView MKMapView
  • Jade:加载外部javascript并调用函数

    我正在学习 Express Node Jade 现在在 Jade 文件中我想包含一个来自公共文件夹的 javascript 文件 仅用于该页面 例如 在 jade 文件中我输入以下内容 script src javascripts test
  • Delphi XE2 FireMonkey 是否支持 Indy 跨平台应用程序?

    看看带有 Firemonkey 的新 Delphi XE2 考虑到它是针对 Windows Mac OSX 和 iOS 进行编译的 VCL 组件在 FireMonkey 应用程序中毫无用处 我的问题是 是否有 将会有 Indy Firemo
  • 如何从 Dart http 调用返回 json / 如何完全使用流?

    这是我的代码 应该返回 json 我从这里改编了这段代码https github com flutter flutter issues 15110 Stream defaultReturn HttpClientResponse httpCl