1

我正在使用 gorilla web toolkit 和 golang,并且有以下代码

func test(w http.ResponseWriter, r *http.Request) {
    fmt.Println("test was called ..")
}

func main() {
    runtime.GOMAXPROCS(runtime.NumCPU())
    mx := mux.NewRouter()
    mx.HandleFunc(?, test)
    http.ListenAndServe(":8080", mx)
} 

我的服务器将提供带有表单的 html 文档,该表单将执行 get-request 并发送“/?id={something}”。如何在 mx.HandleFunc 中设置模式以匹配查询以便调用测试?

我试过了:

"/?id={something}, 
"/?id=", 
mx.HandleFunc("/", test).Queries("id")
mx.HandleFunc("/", test).Methods("POST") 

(最后一个我更改了相应的页面代码,以便表单改为发布)。

4

1 回答 1

2

使用时,.Queries()您需要同时给它一个键和一个值,例如:

mx.HandleFunc("/", test).Queries("id", "value")

您还可以使用模式作为值,例如:

mx.HandleFunc("/", test).Queries("id", "{id:[0-9]+}")

有关详细信息,请参见此处:http: //godoc.org/github.com/gorilla/mux#Route.Queries

于 2015-03-24T14:43:31.380 回答