我的编程空间,编程开发者的网络收藏夹
学习永远不晚

提供动态长度响应数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

提供动态长度响应数据

一分耕耘,一分收获!既然打开了这篇文章《提供动态长度响应数据》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

我有一个用 gin-gonic 和 golang 创建的应用程序。应用程序根据请求返回 json。 我的 json 是一些结构的数组。我已经一一创建了结构,当一切准备就绪时,我用 c.string 进行输出

func getData(c *gin.Context) {
    jsondoc, err := GetData()

    if err != nil {
        handleError(c, err)
        return
    }
    c.Header("Content-Type", "application/json; charset=utf-8")
    c.String(200, jsondoc)
}

我想做一些优化。我想在完整的 json 未准备好时开始向用户发送数据。当我有了 json 的第一个艺术时,我可以开始发送到客户端浏览器。

这可能吗?将某些阅读器界面返回到 gin-gonic 并从中读取直到打开?

更新。有一个函数 datafromreader 。例如,https://gin-gonic.com/api-example/serving-data-from-reader/ 。 但它需要设置一个 content-length 。对于我的数据,我没有这个值。因此,不应设置此标头。


解决方案


我已经找到了这样做的方法。很简单,只需将你的回复写到c.writer

func getData(c *gin.Context) {
    c.Statue(200)
    c.Header("Content-Type", "application/json; charset=utf-8")
    GetData(c.Writer)
}
func GetData(res io.Writer) {
    res.Write([]byte("["))
    res.Write(moreBytes)
    res.Write(moreBytes2)

...... res.write([]byte("]")) }

但是没有好的方法来处理错误。这需要更棘手的设计

终于介绍完啦!小伙伴们,这篇关于《提供动态长度响应数据》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~编程网公众号也会发布Golang相关知识,快来关注吧!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

提供动态长度响应数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

提供动态长度响应数据

一分耕耘,一分收获!既然打开了这篇文章《提供动态长度响应数据》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!问题内容我有一个
提供动态长度响应数据
2024-04-05

Galera集群提升MySQL数据库响应速度

Galera集群通过其独特的多主同步复制机制,能够显著提升MySQL数据库的响应速度。以下是关于Galera集群及其提升响应速度的相关信息:Galera集群介绍Galera集群是一个真正的多主同步复制集群,能够解决MySQL主从同步存在
Galera集群提升MySQL数据库响应速度
2024-09-04

数据库性能优化:提升系统响应速度的关键策略

数据库性能优化是一个持续的过程,需要开发者和运维人员共同努力。通过合理设计数据库表结构、优化查询语句、建立索引、分库分表、定期清理垃圾数据等策略,可以显著提升数据库的查询速度和事务处理能力,减少系统响应时间,提高用户体验。

四款行业头部数据分析SDK接入鸿蒙生态,以数据驱动应用高质量增长

鸿蒙生态建设速度突飞猛进,不仅有超4000款应用加速开发,众多头部SDK伙伴也在积极加入,为开发者提供构建鸿蒙原生应用所需的多项能力。近期,友盟+移动统计SDK、神策数据SDK、阿里云日志服务SDK、QuestMobile全流量分析SDK四
SDK2024-11-29

三星移动固态硬盘T9发布,为专业人士提供强悍性能和数据可靠性

T9是三星首款采用USB 3.2 Gen 2x2接口的移动固态硬盘,顺序读写速度高达2000 MB/s 【3】
固态硬盘T92024-11-30

在高并发读取场景下,如何利用缓存提升数据库的性能和响应速度?

缓存是一种将数据存储在内存中的机制,可以快速地提供对数据的访问,减少对数据库的频繁查询,从而降低数据库的负载。
数据库缓存2024-11-30

神雲科技采用最新AMD 企业级技术方案,为AI驱动的数据中心工作负载提供卓越的性能和密度

【加州纽瓦克电2024年10月11日】业界一流的服务器设计暨制造商,神达控股股份有限公司(股票代号:3706)子公司 神雲科技股份有限公司(MiTAC Computing Technology Corp. ),今日宣布推出全新高效能服务器系
AI2024-11-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录