为了账号安全,请及时绑定邮箱和手机立即绑定

Gorilla Mux 处理卷曲请求

Gorilla Mux 处理卷曲请求

Go
慕码人2483693 2021-09-13 15:57:44
我想使用 Gorilla mux 来处理 api 请求。命令将类似于:curl http://0.0.0.0:8000/api/myapiname/v1?number=10&target=google.com&message=hello我正在为以下处理程序服务:router.Methods("GET").Path("/api/myapiname/{version}").HandlerFunc(apihandler)func apihandler(rw http.ResponseWriter, q *http.Request) {    vars := mux.Vars(q)    log.Println(vars["version"])    log.Println(q.FormValue("number"))    log.Println(q.FormValue("target"))    log.Println(q.FormValue("message"))}但是对于curl请求,我只得到numbernottarget和message's的表单值使用 Gorilla mux 处理 api 请求的正确方法是什么?我需要子路由吗?我只想接收表单的任何 http 请求http://0.0.0.0:8000/api/myapiname/v1?number=10&target=google.com&message=hello并能够将其键映射到值
查看完整描述

1 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

您可以尝试将查询添加到您的路由器,在这种情况下,您将在一张地图中拥有所有变量。


router.Methods("GET").Path("/api/myapiname/{version}").Queries("number", "{number:[0-9]+}", "target", "{target:[^&]+}", "message", "{message:[^&]+}").HandlerFunc(apihandler)


func apihandler(rw http.ResponseWriter, q *http.Request) {

    vars := mux.Vars(q)

    log.Println(vars["version"])

    log.Println(vars("number"))

    log.Println(vars("target"))

    log.Println(vars("message"))

}


查看完整回答
反对 回复 2021-09-13
  • 1 回答
  • 0 关注
  • 215 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号