初窥 http 服务器 golang

与子笑 · · 372 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:与子笑

查看原文:初窥 http 服务器 golang

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

372 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传