【go进阶】一个简单的go服务器实现
光阴似箭,日月如梭,在昨天我终于拿到了自己忙活了半个月的工资。
据说在7月25日有一颗小行星掠过地球,如果真的撞上来,估计31号我就不是乐呵呵的了,应该是直接没了。
如下的代码运行起来就是一个微型go服务器
1 package main 2 3 import ( 4 "fmt" 5 "log" 6 "net/http" 7 "strings" 8 ) 9 10 func sayhelloName(w http.ResponseWriter,r *http.Request){ 11 r.ParseForm() //解析参数,默认是不会解析的 12 fmt.Println(r.Form) //这些信息是输出到服务器端的打印信息 13 fmt.Println("path", r.URL.Path) /*这些信息都是!!!!!*/ 14 fmt.Println("scheme", r.URL.Scheme) 15 fmt.Println(r.Form["url_long"]) 16 for k, v := range r.Form { 17 fmt.Println("key:", k) 18 fmt.Println("val:", strings.Join(v, "")) 19 } 20 fmt.Fprintf(w, "Hello astaxie!") //这个写入到w的是输出到客户端的 21 } 22 23 func loginContro(w http.ResponseWriter,r *http.Request){ 24 r.ParseForm() 25 fmt.Println(r.Form) 26 fmt.Println("path",r.URL.Path) 27 fmt.Println("scheme",r.URL.Scheme) 28 fmt.Println(r.Form["url_long"]) 29 for k, v := range r.Form { 30 fmt.Println("key:", k) 31 fmt.Println("val:", strings.Join(v, "")) 32 } 33 fmt.Fprintf(w, "this is page of login check!") 34 } 35 36 func main() { 37 http.HandleFunc("/", sayhelloName) //设置访问的路由 38 http.HandleFunc("/login",loginContro) 39 err := http.ListenAndServe(":9090", nil) //设置监听的端口 40 if err != nil { 41 log.Fatal("ListenAndServe: ", err) 42 } 43 }
没有什么好说的,我感觉大家很容易就能看懂~
今天就到这里啦~