Обработчик Mux не получает все параметры запроса, переданные из сообщения curl - PullRequest
0 голосов
/ 21 мая 2018

Я не могу получить все параметры запроса, используя 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..
}

Когда я вызываю API с помощью curl 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 голосов
/ 21 мая 2018

URL http://localhost:8080/resize?width=100&height=100 содержит специальный символ &, который имеет другое значение для оболочки.

Чтобы использовать амперсанд (&) в качестве фактического символа внутри URL, необходимо поместить URL в кавычки: "http://localhost:8080/resize?width=100&height=100"

...