我正在使用net / http http.HandleFunc(" / resource",resource.Handle),我想知道是否有办法查看使用的路由(在本例中为/ resource)把你带到资源。处理?或者我是否必须为此创建一个Mux?
我想知道这一点,从网址路径中提取资源,用它做一些魔术......
答案 0 :(得分:3)
http://golang.org/pkg/net/http/#Request
使用request.URL.Path
获取用于访问处理程序的路径。
答案 1 :(得分:3)
是的,你可以
要点:
DefaultServeMux
方法使用的HandleFunc
。http.Request
例如:
package main
import (
"fmt"
"net/http"
"net/url"
)
func main() {
theUrl, err := url.Parse("/response")
if err != nil {
fmt.Println(err.Error())
return
}
http.HandleFunc("/response", func(w http.ResponseWriter, r *http.Request) {
})
handler, path := http.DefaultServeMux.Handler(&http.Request{Method: "GET", URL: theUrl})
fmt.Println(handler, path)
}
请参阅此Go Playground