gin讀取了body數據後,再次獲取就爲空 的解決方法

需求:

記錄所有請求的json數據

        body, _ := ioutil.ReadAll(c.Request.Body)
        if body != nil {
            log.Info("請求body內容爲:%s", body)
        }

此方法即可打印所有請求的body內容,但是在對應的處理器上就取不到數據

解決辦法:

data,err := c.GetRawData()
        if err != nil{
            fmt.Println(err.Error())
        }
        fmt.Printf("data: %v\n",string(data))
        //很關鍵
        //把讀過的字節流重新放到body
        c.Request.Body = ioutil.NopCloser(bytes.NewBuffer(data))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章