我正在编写一个可以采用POST或GET的处理程序。因此,我希望可以说:
http://host/query?parm1=value&parm2=value
Run Code Online (Sandbox Code Playgroud)
我当时以为大猩猩混合体会给我:
{
"parm1": "value",
"parm2": "value
}
Run Code Online (Sandbox Code Playgroud)
但是mux.Vars(r)空的。我知道使用.Query("key", "value"会使参数成为强制性的,这不是我想要的。我想念什么?
正如评论中所反映的那样,基本答案是“这不是mux的目的”。mux擅长分解URL 的路径部分,并将组件转换为变量。举一个假设的例子,提供有关某个国家/地区信息的呼叫可能具有如下所示的规范:
country/{code}
Run Code Online (Sandbox Code Playgroud)
并接受如下所示的呼叫:
http://myhost/country/DE
Run Code Online (Sandbox Code Playgroud)
您将获得如下所示的code参数值:
code := mux.Vars(r)["code"]
Run Code Online (Sandbox Code Playgroud)
如果要传递查询变量,则不要使用mux进行。只需从请求中直接获取它们即可。因此,给出了替代查询语法:
http://myhost/country?code=DE
Run Code Online (Sandbox Code Playgroud)
你会做:
code := r.URL.Query().Get("code")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2411 次 |
| 最近记录: |