Parameters 戈朗:不要叫帕玛斯

Parameters 戈朗:不要叫帕玛斯,parameters,go,Parameters,Go,例如,我有一个请求: 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 如何获取未命名的参数? 如果使用默认的htt

例如,我有一个请求:

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
如何获取未命名的参数?


如果使用默认的http服务器库,则需要解析Url路径部分并提取它们

有像Gorilla Mux(我个人喜欢)这样的库,可以用来自动添加这种逻辑

使用Gorilla/mux,当您注册处理程序时,您可以这样注册它:

r := mux.NewRouter()
r.HandleFunc("/api/users/{userId}/categories/{categoryId}/posts/{postId}", 
             MyHandler)
然后在处理程序中,您可以访问它们:

vars := mux.Vars(request)
userId := vars["userId"]
// etc...

如果使用默认的http服务器库,则需要解析Url路径部分并提取它们

有像Gorilla Mux(我个人喜欢)这样的库,可以用来自动添加这种逻辑

使用Gorilla/mux,当您注册处理程序时,您可以这样注册它:

r := mux.NewRouter()
r.HandleFunc("/api/users/{userId}/categories/{categoryId}/posts/{postId}", 
             MyHandler)
然后在处理程序中,您可以访问它们:

vars := mux.Vars(request)
userId := vars["userId"]
// etc...

我正在使用
martini
,这个功能也在哪里,但我需要在我的
中间件中获取这个参数,而不是在哪里working@cnaize然后您需要自己分割url路径并访问它们。如果您需要这方面的帮助,我会将其添加到我的答案中。哦,这将是有用的。我正在使用
martini
,该功能也在哪里,但我需要在我的
中间件
中获取该参数,而它不在哪里working@cnaize然后您需要自己分割url路径并访问它们。如果您需要这方面的帮助,我会将其添加到我的答案中。哦,它将非常有用ParseMultipartForm用于解析请求正文中的表单字段。您正在尝试解析请求URL。ParseMultipartForm用于解析请求正文中的表单字段。您正在尝试解析请求URL。