リクエストボディを構造体にマッピングする以前に、どんなリクエストが来ているのか知るためにstringで見たいときがある。
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.New()
router.POST("hoge", func(c *gin.Context) {
buf := make([]byte, 2048)
n, _ := c.Request.Body.Read(buf)
b := string(buf[0:n])
fmt.Println(b)
c.Status(200)
})
router.Run()
}
なお上のコードだと c.Request.Body
のストリームを読み切ってしまうので、それがいやならば以下の記事のようにストリームに対してデータを書き戻すような実装をする必要がある。