Go Pentester – HTTP Servers(2)

Routing with the gorilla/mux Package

A powerful HTTP router and URL matcher for building Go web servers

https://github.com/gorilla/mux

Install package

go get -u github.com/gorilla/mux

Build sample 1:

package mainimport ( "fmt" "github.com/gorilla/mux" "net/http")func main() { r := mux.NewRouter() r.HandleFunc("/foo", func(w http.ResponseWriter, req *http.Request) { fmt.Fprintln(w, "hi foo") }).Methods("GET") http.ListenAndServe(":8000", r)}

Run the test sample 1.

 

 Build sample 2: It‘s helpful to match and pass in parameters within the request patch (for example, when implementing a RESTful API)

package mainimport ( "fmt" "github.com/gorilla/mux" "net/http")func main() { r := mux.NewRouter() r.HandleFunc("/users/{user}", func(w http.ResponseWriter, req *http.Request) { user := mux.Vars(req)["user"] fmt.Fprintf(w, "hi %s\n", user) }).Methods("GET") http.ListenAndServe(":8000", r)}

Run and test sample 2.

 

 Build sample 3: Use regular expression to qualify the patterns passed.

package mainimport ( "fmt" "github.com/gorilla/mux" "net/http")func main() { r := mux.NewRouter() r.HandleFunc("/users/{user:[a-z]+}", func(w http.ResponseWriter, req *http.Request) { user := mux.Vars(req)["user"] fmt.Fprintf(w, "hi %s\n", user) }).Methods("GET") http.ListenAndServe(":8000", r)}

Run and test sample 3.

 

相关文章