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

2024年 2月 22日 112.4k 0

如何使用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))

登录后复制

以上就是如何使用gin框架获取Golang http post请求的原始数据的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论