首页 / GO / go语言网络编程之HTTP服务器初探
go语言网络编程之HTTP服务器初探
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了go语言网络编程之HTTP服务器初探,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1946字,纯文字阅读大概需要3分钟。
内容图文
v1
1 package main 2 3 import ( 4 "log" 5 "net/http" 6 ) 7 8 func main() { //根路由 9 http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { 10 w.Write([]byte("Hello, this is version 1.")) //字符串转换成字节 11 }) 12 http.HandleFunc("/bye", sayBye) 13 14 log.Println("Starting server... v1") //打印一段日志 15 log.Fatal(http.ListenAndServe(":400", nil)) //一般不会被执行 16 } 17 18 func sayBye(w http.ResponseWriter, r *http.Request) { 19 w.Write([]byte("Bye bye this is version 1.")) 20 }
结果
V2
package main import ( "log" "net/http" ) func main() { mux := http.NewServeMux() mux.Handle("/", &myHandler{}) mux.HandleFunc("/bye", sayBye) log.Println("Starting server... v2") log.Fatal(http.ListenAndServe(":40", mux)) } func sayBye(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Bye bye this is version 2!")) } type myHandler struct{} func (*myHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello v2, the request URL is: " + r.URL.String())) }
结果
V3
package main import ( "log" "net/http" "os" "os/signal" "time" ) func main() { server := &http.Server{ Addr: ":40000", WriteTimeout: time.Second * 2, } quit := make(chan os.Signal) signal.Notify(quit, os.Interrupt) mux := http.NewServeMux() mux.Handle("/", &myHandler{}) mux.HandleFunc("/bye", sayBye) go func() { <-quit if err := server.Close(); err != nil { log.Fatal("Close server:", err) } }() server.Handler = mux log.Print("Starting server... v3") err := server.ListenAndServe() if err != nil { if err == http.ErrServerClosed { log.Print("Server closed under request.") } else { log.Fatal("Server closed unexpected") } } } func sayBye(w http.ResponseWriter, r *http.Request) { time.Sleep(3 * time.Second) w.Write([]byte("Bye bye this is version 3.")) } type myHandler struct{} func (*myHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello v3, the request URL is:" + r.URL.String())) }
结果
写超时2秒改4秒后
内容总结
以上是互联网集市为您收集整理的go语言网络编程之HTTP服务器初探全部内容,希望文章能够帮你解决go语言网络编程之HTTP服务器初探所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。