初窥 http 服务器 golang

2020-09-07  本文已影响0人  与子笑
type myHandler struct{}
func main() {    
    http.HandleFunc("/", Hello)             //没有指定路由则匹配到根路由    
    http.HandleFunc("/bye", Saybye)         //不能带括号    
    mymux := http.NewServeMux()             //创建一个handlefunc的底层结构    
    mymux.Handle("/myhandle", &myHandler{}) //有handle和handlefunc,http.handlefunc底层就是servermux.handlefunc    
    //传入一个handle    
    log.Println("服务开始运行")    
    //创建自己的服务,listenandserve的底层也是多封装了一层    
    myserve := &http.Server{        
                    Addr: ":4000",    
                    }    
    myserve.Handler = mymux    
    //log.Fatal(myserve.ListenAndServe())    
    log.Fatal(http.ListenAndServe(":4001", nil))    
    //第二个参数也是handle,如果不传则myhandle路由不生效,传了则根路由和bye路由不生效    
    //将根路由和bye路由绑定的http换成mymux则全部生效
}

func (*myHandler) ServeHTTP(w http.ResponseWriter, s *http.Request) { //为Myhandle绑定一个方法    
    w.Write([]byte("这是调用底层创建http服务的第二种方法 url:" + s.URL.String()))
    }
func Hello(w http.ResponseWriter, s *http.Request) {    
    w.Write([]byte("你好,golang,第一种路由写法 Hello url:" + s.URL.String()))
    }
func Saybye(w http.ResponseWriter, s *http.Request) {    
    w.Write([]byte("第一种路由写法 Saybye url:" + s.URL.String()))
    }

原文链接:初窥http服务器-GOLANG

上一篇下一篇

猜你喜欢

热点阅读