when using golang gin framework, the context.Request.Body would be nil if someone already read it in some place, such as
data, _ := ioutil.ReadAll(c.Request.Body)