PHP
·
发表于 5年以前
·
阅读量:8281
package main
import "net/http"
import "fmt"
func hello(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/plain")
fmt.Fprintln(w, "Hello wrapped world")
}
func wrapMiddleware(f http.HandlerFunc) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("X-Wrapped", "true")
f(w, r)
}
}
func main() {
handler := wrapMiddleware(hello)
http.HandleFunc("/", handler)
http.ListenAndServe(":5000", nil)
}
运行结果:
$ go run middleware.go
$ curl -i http://127.0.0.1:5000/
HTTP/1.1 200 OK
Content-Type: text/plain
Date: Tue, 02 Oct 2012 00:37:18 GMT
Transfer-Encoding: chunked
X-Wrapped: true
Hello wrapped world