3 回答
TA贡献1893条经验 获得超10个赞
HandleFunc
不知道该怎么办{id}
。给它一个它可以匹配的特定路径:
http.HandleFunc("/products/", doSomethingWithProduct)
TA贡献1876条经验 获得超5个赞
内置的 HTTP 路由器并没有做任何像绑定参数那样花哨的事情;但是,您可以指定与处理程序关联的整个前缀。请参阅 的文档http.ServeMux。
尝试这样的事情:
func main() {
productsPrefix := "/products/"
http.HandleFunc(productsPrefix, func(w http.ResponseWriter, r *http.Request) {
if (r.Method == "PUT") && (strings.Index(r.URL.Path, productsPrefix) == 0) {
productId := r.URL.Path[len(productsPrefix):]
fmt.Printf("OK: %s %s productId=%s\n", r.Method, r.URL.Path, productId)
}
})
log.Print("Listening on localhost:8080")
log.Fatal(http.ListenAndServe(":8080", nil))
}
例如:
$ curl -XPUT http://localhost:8080/products/1234
# => OK: PUT /products/1234 productId=1234
- 3 回答
- 0 关注
- 166 浏览
添加回答
举报