确定 HTTP 中间件处理程序中的请求正文可重用性
在这种情况下,当尝试在 Go 中的另一个方法中重用一个方法时会出现问题-chi HTTP 路由器。外部处理程序 Registration() 使用 ioutil.ReadAll(r.Body) 读取请求正文,不留下任何数据可供内部处理程序 Create() 解析 JSON。
解决方案:恢复请求正文
要解决此问题,请执行以下操作修复:
func Registration(w http.ResponseWriter, r *http.Request) { b, err := io.ReadAll(r.Body) // ...other code r.Body = io.NopCloser(bytes.NewReader(b)) user.Create(w, r) }
以下是此代码解决问题的方法:
这样,内部处理程序就可以从请求正文中访问 JSON 数据,而不会遇到“unexpected end of JSON input”错误。
以上是如何在 Go-chi HTTP 中间件处理程序中重用请求主体?的详细内容。更多信息请关注PHP中文网其他相关文章!