Go Lang-Gin:如何从httputil.DumpRequest中仅提取主体(并忽略其他垃圾)

Go Lang-Gin:如何从httputil.DumpRequest中仅提取主体(并忽略其他垃圾),go,Go,我知道你可以从 ioutil.ReadAll(c.Request.Body) 但是使用httputil.DumpRequest dump,err:=httputil.DumpRequest(c.Request,true) 将给出正文内容以及其他值,最后是正文内容 内容类型:application/json IP:127.0.0.1:36846头标记:内容长度:76请求方法:POST请求URL:/注册主体: 发布/注册HTTP/1.1 主持人:127.0.0.1:8080 接受:/ 接受编码:g

我知道你可以从

ioutil.ReadAll(c.Request.Body)
但是使用httputil.DumpRequest

dump,err:=httputil.DumpRequest(c.Request,true)

将给出正文内容以及其他值,最后是正文内容

内容类型:application/json IP:127.0.0.1:36846头标记:内容长度:76请求方法:POST请求URL:/注册主体: 发布/注册HTTP/1.1 主持人:127.0.0.1:8080 接受:/ 接受编码:gzip,deflate 接受语言:en-US,en;q=0.8 连接:保持活力 内容类型:application/json 产地:铬-extension://hgmloofddffdnphfgcellkdfbfbjeloo 用户代理:Mozilla/5.0(X11;Linux i686)AppleWebKit/537.36(KHTML,比如Gecko)Chrome/38.0.2125.101 Safari/537.36 {“fname”:“affirstname”,“lname”:“aLName”,“email”:test@test.com“,”密码“:“123”}

是否有一种有效的方法可以仅从httputil.DumpRequest()获取正文内容?i、 e仅在这种情况下

{“fname”:“affirstname”,“lname”:“aLName”,“email”:test@test.com“,”密码“:“123”}


您没有为此使用
httputil.DumpRequest
,这是一个调试函数

假设您想解析json,可以执行以下操作:

defer c.Request.Body.Close()
var data yourDataType
if err := json.NewDecoder(c.Request.Body).Decode(&data); err != nil {
    // handle error
}
// handle data

如果上一个问题的答案不正确,不要重复该问题,而是在那里对答案进行评论和/或编辑该问题。也就是说,当你应该执行X(复制
io.ReadCloser
)时,你在问如何执行Y(调试函数的输出)。这个问题的答案是“你没有”。@dave-c,我不认为这是重复的,因为另一个问题是如何“保留”身体。在这里,我试图忽略垃圾,只提取我需要的东西。我是围棋初学者。非常感谢您的帮助。谢谢。严格地说,它不是复制品;然而,这个问题的存在仅仅是因为对另一个问题的回答不好(并且接近的原因是有限的)。这不是任何人都应该做的事情。不要使用不合适的调试函数。