gpt4 book ai didi

go - 如何使用 net/http 处理每个请求的上下文

转载 作者:数据小太阳 更新时间:2023-10-29 03:16:36 27 4
gpt4 key购买 nike

上半年this answer演示了一种在两个处理程序方法之间共享某些按请求上下文的模式。有点。

我正在寻找一种基本上可以做到这一点的方法,但有两个以上的处理程序。

假设我需要用相同的每个请求上下文调用三个(或更多)http.HandlerFunc:

  • 验证()
  • DoStuff()
  • 输出HTML()

如果不求助于全局映射(例如 gorilla/mux),是否可以使用标准的 http.Handler 接口(interface)在这些函数之间传递每个请求的上下文?

最佳答案

您可以使用您的上下文欺骗和包装 Request.Body(一个 ReaderCloser 接口(interface))。

这是一个例子:webctx.go

当您需要上下文时,只需键入 assert request.Body 作为您的类型。唯一的技巧是您的类型必须保留原始主体并实现 ReaderCloser 方法……但这是最少量的代码。

关于go - 如何使用 net/http 处理每个请求的上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31930782/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com