2 回答
TA贡献1893条经验 获得超10个赞
如果您不想使用任何第三方库,则必须自己处理路径的解析。
首先,您可以这样做:
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
page := r.URL.Path[1:]
// do whatever logic you want
// mind that the page could be "multi/level/path/" as well
})
TA贡献1853条经验 获得超9个赞
您可以使用 http.HandleFunc。在这个函数中,以斜线结尾的模式定义了一个子树。您可以使用模式“/page/”注册处理程序函数,如下例所示。
package main
import (
"net/http"
"fmt"
)
func handler(w http.ResponseWriter, r *http.Request) {
if is_valid_page(r.URL) {
fmt.Fprint(w, "This is a valid page")
} else {
w.WriteHeader(http.StatusNotFound)
fmt.Fprint(w, "Error 404 - Page not found")
}
}
func is_valid_page(page string) {
// check here if page is valid from url
}
func main() {
http.HandleFunc("/page/", handler)
http.ListenAndServe(":8080", nil)
}
您可以在这里找到更多信息:https ://golang.org/pkg/net/http/#ServeMux
- 2 回答
- 0 关注
- 102 浏览
添加回答
举报