使用Go-chi 進行HTTP 路由時,通常需要在多個處理程序中重複使用請求正文。然而,當請求正文只能讀取一次時,就會出現一個常見的挑戰。
例如,考慮以下程式碼:
在此範例中,註冊處理程序讀取請求正文使用 ioutil.ReadAll。當呼叫 Create 處理程序時,它會嘗試重新讀取正文,從而導致 JSON 輸入錯誤的意外結束。
這裡的根本問題是第一次呼叫 ReadAll 會耗盡請求正文。要解決此問題,必須使用先前讀取的資料來恢復請求正文。下面的程式碼示範如何實現:
在修改後的程式碼中,使用io.ReadAll 讀取請求正文,然後在呼叫之前使用bytes.NewReader 和io.NopCloser 函數恢復請求正文用戶.創建.這有效地使請求正文可供後續處理程序使用。
以上是如何在Go-chi中間件中重複使用HTTP請求體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!