卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章37168本站已运行3916

如何使用gin框架获取Golang http post请求的原始数据

如何使用gin框架获取golang http post请求的原始数据

php小编小新为您介绍如何使用gin框架获取Golang http post请求的原始数据。在Golang中,使用gin框架可以便捷地处理http请求,包括post请求。通过gin框架提供的Context对象,可以轻松获取post请求中的原始数据,进而进行后续处理。接下来,我们将详细解析如何在gin框架中实现这一功能,让您轻松处理http post请求中的数据。

问题内容

我在我的服务器中收到一个 post 请求,其负载与此类似

{       "amount": 10000,
        "amount_due": 0,
        "amount_paid": 10000,
        "attempts": 1,
}

内容类型是application/json。 现在,为了进行一些计算,我希望原始文本中的有效负载类似于这样。

{"amount":10000,"amount_due":0,"amount_paid":10000,"attempts":1} 
No space and no new line

我正在使用 golang 和 gin 框架,但我试图获取请求正文,例如 ginctx *gin.context.request.body 或 ginctx *gin.context.getrawdata(),那么我没有得到我实际想要的原始数据,我得到了很好的缩进 json,但我想要原始正文。 请帮助我如何使用 gin 框架在 golang 中获取它。

解决方法

请注意,raw 表示未处理,这正是 c.GetRawData() 返回的内容。

如果您想获取原始数据并删除所有无关紧要的空格,那么您需要处理数据。根据定义,处理的结果将不再是原始数据

所以不太清楚你的要求是什么。

  • 您想要原始数据吗?然后使用 c.GetRawData()
  • 您想要删除无关紧要的空格的数据吗?然后使用 json.Compact
raw, err := c.GetRawData()
if err != nil {
    return err
}
var buf bytes.Buffer
if err := json.Compact(&buf, raw); err != nil {
    return err
}
data := buf.Bytes()
fmt.Println(string(data))
卓越飞翔博客
上一篇: “最少惊讶”和可变默认参数
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏