例如,我有一个请求:
POST /api/users/1/categories/2/posts/3
Run Code Online (Sandbox Code Playgroud)
我怎样才能访问这个参数?
我试过了:
req.ParseMultipartForm(defaultMaxMemory)
req.Form.Get("id")
req.Form.Get("1")
req.Form.Get("_1")
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
关于GET的同样问题:
GET /api/users/1/categories/2/posts/3
Run Code Online (Sandbox Code Playgroud)
怎么没有命名参数?
req.URL.Query().Get(???)
Run Code Online (Sandbox Code Playgroud)
如果您使用的是默认的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)
Run Code Online (Sandbox Code Playgroud)
然后在您的处理程序中,您可以访问它们:
vars := mux.Vars(request)
userId := vars["userId"]
// etc...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1044 次 |
| 最近记录: |