Mux处理程序未接收从curl post传递的所有查询参数

时间:2018-05-21 13:57:17

标签: go mux

我无法使用Mux接收所有查询参数。只收到第一部分

func main() {
    router := mux.NewRouter()
    router.HandleFunc("/resize", resizeImageFromPayload).Methods("POST")
    log.Fatal(http.ListenAndServe(":8080", router))
}

func resizeImageFromPayload(w http.ResponseWriter, r *http.Request) {
    widthParameter := r.URL.Query().Get("width")
    heightParameter := r.URL.Query().Get("height")
    fmt.Println(r.URL.String())
    fmt.Println(widthParameter)
    fmt.Println(heightParameter)
   //More code..
}

当我使用curl调用api时curl -XPOST http://localhost:8080/resize?width=100&height=100 -o img_resize.png -F "file=@snap1.png"这就是它打印的内容:

/resize?width=100
100

它似乎省略了& height = 100部分。有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

网址http://localhost:8080/resize?width=100&height=100包含一个特殊字符&,其中another meaning为shell。

要将&符号(&)用作网址中的实际字符,您需要将网址放在引号中:" http://localhost:8080/resize?width=100&height=100 "