標籤:http ar os 使用 sp on ad amp as
第一種方式,使用類型形式構建HTTP中介軟體,結構myHandler有個屬性是http.Handler類型,這個類型有個ServeHTTP方法
package mainimport ("fmt""net/http")type myHandler struct {Addrhost stringHeadler http.Handler}func (this *myHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {this.Headler.ServeHTTP(w, r)}func HandlerFunc(w http.ResponseWriter, r *http.Request) {fmt.Println(r.Host)w.Write([]byte("你好世界"))}func main() {my := &myHandler{Headler: http.HandlerFunc(HandlerFunc),Addrhost: ":8080",}http.ListenAndServe(":8080", my)}
第二種方式,函數方式
package mainimport ("fmt""net/http")func gethandler(addhost string, headler http.Handler) http.Handler {fn := func(w http.ResponseWriter, r *http.Request) {fmt.Println(r.Host)headler.ServeHTTP(w, r)}return http.HandlerFunc(fn)}func myhandler(w http.ResponseWriter, r *http.Request) {w.Write([]byte("你好世界"))}func main() {hd := gethandler(":8080", http.HandlerFunc(myhandler))http.ListenAndServe(":8080", hd)}
構建HTTP中介軟體