【发布时间】:2017-04-01 07:28:30
【问题描述】:
我想在http.ListenAndServe上使用自定义方法
这就是我所拥有的
http.ListenAndServe(":8000", ErrorHandler)
func ErrorHandler(h http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
h.ServeHTTP(w, r)
})
}
错误
cannot use ErrorHandler (type func(http.Handler) http.Handler) as type http.Handler in argument to http.ListenAndServe:
func(http.Handler) http.Handler does not implement http.Handler (missing ServeHTTP method)
如何向ListenAndServe 添加自定义方法?
【问题讨论】:
-
您的
ErrorHandler不是http.Handler,它是一个返回处理程序的函数,并将其作为参数,然后您可以将其传递给ListenAndServe。所以这编译了http.ListenAndServe(":8000", ErrorHandler(nil))。大概你将一个实际的处理程序值而不是nil传递给ErrorHandler调用,否则h.ServeHTTP最终会恐慌 -
我明白了,我想我需要考虑一下:)