例如,我有一个请求:
POST /api/users/1/categories/2/posts/3
我如何访问此参数?
我试过了:
req.ParseMultipartForm(defaultMaxMemory)
req.Form.Get("id")
req.Form.Get("1")
req.Form.Get("_1")
但它不起作用。
关于GET的同样问题:
GET /api/users/1/categories/2/posts/3
如何获得没有命名的参数?
req.URL.Query().Get(???)
答案 0 :(得分:6)
如果您使用默认的http服务器库,则需要解析Url路径部分并将其解压缩。
像Gorilla Mux(我个人喜欢)这样的库可以用来自动添加这个逻辑。 http://www.gorillatoolkit.org/pkg/mux
使用Gorilla / mux,当您注册处理程序时,您可以这样注册:
r := mux.NewRouter()
r.HandleFunc("/api/users/{userId}/categories/{categoryId}/posts/{postId}",
MyHandler)
然后在您的处理程序中,您可以访问它们:
vars := mux.Vars(request)
userId := vars["userId"]
// etc...