栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

杜松子酒/ golang-空需求体

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

杜松子酒/ golang-空需求体

这里的问题是您要打印出

c.Request.Body
接口类型的字符串值
ReadCloser

您可以做的是让您满意的是,它确实包含所需的主体,它是将值从

c.Request.Body
字符串中读取出来,然后打印出来。 这仅用于您的学习过程!

学习代码:

func events(c *gin.Context) {        x, _ := ioutil.ReadAll(c.Request.Body)        fmt.Printf("%s", string(x))        c.JSON(http.StatusOK, c)}

但是,这不是您应该访问请求正文的方式。让杜松子酒通过使用绑定为您解析正文。

更正确的代码:

type E struct {        Events string}func events(c *gin.Context) {        data:= &E{}        c.Bind(data)        fmt.Println(data)        c.JSON(http.StatusOK, c)}

这是访问体内数据的一种更正确的方法,因为已经为您解析了这些数据。请注意,如果像我们在学习步骤中上面所做的那样先阅读身体,

c.Request.Body
则将清空,因此Gin中将没有任何东西可供阅读。

损坏的代码:

func events(c *gin.Context) {    x, _ := ioutil.ReadAll(c.Request.Body)    fmt.Printf("%s", string(x))    data:= &E{}    c.Bind(data) // data is left unchanged because c.Request.Body has been used up.    fmt.Println(data)    c.JSON(http.StatusOK, c)}

您可能也很好奇,为什么从此终结点返回的JSON显示为空

Request.Body
。这是出于相同的原因。JSON编组方法无法序列化
ReadCloser
,因此显示为空。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/409582.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号