首頁 > 後端開發 > Golang > 如何在Go-chi中間件中重複使用HTTP請求體?

如何在Go-chi中間件中重複使用HTTP請求體?

Barbara Streisand
發布: 2024-12-04 16:54:15
原創
465 人瀏覽過

How Can I Reuse HTTP Request Bodies in Go-chi Middleware?

Go-chi 中間件中HTTP 請求正文的可重用性

使用Go-chi 進行HTTP 路由時,通常需要在多個處理程序中重複使用請求正文。然而,當請求正文只能讀取一次時,就會出現一個常見的挑戰。

例如,考慮以下程式碼:

在此範例中,註冊處理程序讀取請求正文使用 ioutil.ReadAll。當呼叫 Create 處理程序時,它會嘗試重新讀取正文,從而導致 JSON 輸入錯誤的意外結束。

這裡的根本問題是第一次呼叫 ReadAll 會耗盡請求正文。要解決此問題,必須使用先前讀取的資料來恢復請求正文。下面的程式碼示範如何實現:

在修改後的程式碼中,使用io.ReadAll 讀取請求正文,然後在呼叫之前使用bytes.NewReader 和io.NopCloser 函數恢復請求正文用戶.創建.這有效地使請求正文可供後續處理程序使用。

以上是如何在Go-chi中間件中重複使用HTTP請求體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板