gpt4 book ai didi

Gorilla Mux 处理 curl 请求

转载 作者:数据小太阳 更新时间:2023-10-29 03:17:04 25 4
gpt4 key购买 nike

我想使用 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 请求,我只得到 number 的表单值,而不是 targetmessage

使用 Gorilla mux 处理 api 请求的正确方法是什么?我需要子路由吗?

我只想接收 http://0.0.0.0:8000/api/myapiname/v1?number=10&target=google.com&message=hello 形式的任何 http 请求并能够映射其值(value)的关键

谢谢!

最佳答案

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

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"))
}

关于Gorilla Mux 处理 curl 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28386387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com