9.5 处理http 请求

package main

import (
	"fmt"
	"net/http"
)

func main() {

	mux := http.NewServeMux()
	mux.HandleFunc("/user", func(w http.ResponseWriter, r *http.Request) {
		if r.Method == http.MethodGet {
			fmt.Fprintln(w, "User GET")
		}
		if r.Method == http.MethodPost {
			fmt.Fprintln(w, "User POST")
		}
	})

	// separate handler
	itemMux := http.NewServeMux()
	itemMux.HandleFunc("/items/clothes", func(w http.ResponseWriter, r *http.Request) {
		fmt.Fprintln(w, "Clothes")
	})
	mux.Handle("/items/", itemMux)

	// Admin handlers
	adminMux := http.NewServeMux()
	adminMux.HandleFunc("/ports", func(w http.ResponseWriter, r *http.Request) {
		fmt.Fprintln(w, "Ports")
	})

	mux.Handle("/admin/",
		http.StripPrefix("/admin", adminMux))

	// Default server
	http.ListenAndServe(":8080", mux)

}

/*
(sx3.5.3) ➜  ~ curl -XI http://127.0.0.1:8080/user
(sx3.5.3) ➜  ~ curl -XI http://127.0.0.1:8080/userA
404 page not found
(sx3.5.3) ➜  ~ curl -X POST http://127.0.0.1:8080/user
User POST

(sx3.5.3) ➜  ~ curl  http://127.0.0.1:8080/admin
<a href="/admin/">Moved Permanently</a>.
*/

posted on 2018-03-26 23:38  cucy_to  阅读(106)  评论(0编辑  收藏  举报

导航