为了账号安全,请及时绑定邮箱和手机立即绑定

如何在net / http中注销处理程序?

如何在net / http中注销处理程序?

Go
当年话下 2021-05-10 17:36:52
我正在编写一个Web服务器,其中需要在运行时注册处理程序。例如,“ / create”将为所有URL(例如“ / 123 / *”等)创建一个新的处理程序。我需要一个相应的“ / destroy / 123”,它将为“ / 123 / *”注销处理程序。这是用于处理“ / create”的代码package mainimport (    "fmt"    "net/http")type MyHandler struct {    id int}func (hf *MyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {    fmt.Fprintln(w, r.URL.Path)}// Creates MyHandler instances and registers them as handlers at runtimetype HandlerFactory struct {    handler_id int}func (hf *HandlerFactory) ServeHTTP(w http.ResponseWriter, r *http.Request) {    hf.handler_id++    handler := MyHandler{hf.handler_id}    handle := fmt.Sprintf("/%d/", hf.handler_id)    http.Handle(handle, &handler)}func main() {    factory := HandlerFactory{0}    http.Handle("/create", &factory)    http.ListenAndServe("localhost:8080", nil)}我尝试通过嵌入来实现自己的多路复用器,http.ServeMux但它在私有变量(ServeMux.m)中保留了其模式到处理程序的映射
查看完整描述

3 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

通过注册不返回任何内容的处理程序(不向ResponseWriter写任何内容)或生成“未找到”的响应,也许可以“完成”注销。取决于您的要求和/或取消先前注册的处理程序的目的/效果。


查看完整回答
反对 回复 2021-05-17
  • 3 回答
  • 0 关注
  • 177 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信