正常讀取字節流(直接讀空)
func ReadData(c *gin.Context) {
// 這樣讀取字節流之后,整個c.request.body就已經讀空啦。再次無法讀到數據。
data, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
log.Fatalln(err)
}
fmt.Println(string(data))
// 再次讀取
data, _ = ioutil.ReadAll(c.Request.Body)
fmt.Println(string(data)) // 無數據
}
復制字節流
func ReadData(c *gin.Context) {
// 這樣讀取字節流之后,整個c.request.body就已經讀空啦。再次無法讀到數據。
data, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
log.Fatalln(err)
}
fmt.Println(string(data))
// 再次讀取數據(復制字節流)
c.Request.Body = ioutil.NopCloser(bytes.NewReader(data))
data, _ = ioutil.ReadAll(c.Request.Body)
fmt.Println(string(data)) // 有數據
}
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。