简单的web
func webHello(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("hello world"))
}
func main() {
addr := ":9527"
http.HandleFunc("/", webHello)
http.ListenAndServe(addr, nil)
}
这是一个最简单的web,监听9527端口,当有网络请求时回调webHello函数。
这里的请求路径的是 ‘/’ ,所有的请求都会被这个匹配上。
那我想要处理特定的访问路径呢? 现在往代码里面添一点东西
func webHello(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("hello world"))
}
func webMouse(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("hello little mouse"))
}
func main() {
addr := ":9527"
http.HandleFunc("/", webHello)
http.HandleFunc("/mouse", webMouse)
http.ListenAndServe(addr, nil)
}
可以访问 http://127.0.0.1:9527 和 http://127.0.0.1:9527/mouse 将得到不同的结果
这样可以对不同的请求路径来响应,那么需要对不同的方法来响应呢?
type webServer struct{}
func (*webServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if r.Method == http.MethodGet {
if strings.HasPrefix(r.RequestURI, "/test/get") {
w.Write([]byte("GET little mouse"))
}
w.Write([]byte("GET Request"))
}
w.Write([]byte("test"))
}
func main() {
addr := ":9527"
http.Handle("/test/", &webServer{})
http.ListenAndServe(addr, nil)
}
访问 http://127.0.0.1/test/get 用get访问和post put 等其他方法访问得到不同的结果。
本篇分享了最基本的golang的web服务端。只用了最少的代码,方便初学者理解