Доступ к значению запроса POST в FormValue Golang с помощью POSTMAN - PullRequest
0 голосов
/ 05 декабря 2018

Понятия не имею, почему я всегда получаю пустую строку при отправке значений в POSTMAN

func main(){
     rtr := mux.NewRouter()
     rtr.HandleFunc("/search", search).Methods("POST")
}
func search(w http.ResponseWriter, r *http.Request) {
     name := r.FormValue("name") //returns empty 

}

Это запрос тела в POSTMAN

снимок экрана для запроса тела

{
   "name": "markus"


}

Я пытался изменить тело запроса на данные формы

Снимок экрана для данных формы в запросе по почте

Но все равно это не помогло.не работает

У кого-нибудь есть решение?

Спасибо

1 Ответ

0 голосов
/ 05 декабря 2018

То, что у вас есть, это не FormValue, а JSON тело.Если ваш объект JSON представляет собой простую карту строки в строку, то вы можете сделать что-то вроде этого:

func search(w http.ResponseWriter, r *http.Request) {

    body, _ := ioutil.ReadAll(r.Body) // check for errors

    keyVal := make(map[string]string)
    json.Unmarshal(body, &keyVal) // check for errors

    name := keyVal["name"]

    // do whatever with name

}

Редактировать

Если вам нужно проанализироватьзначение формы нужно позвонить ParseForm()

func search(w http.ResponseWriter, r *http.Request) {

    err := r.ParseForm()
    if err != nil {
        // handle err
    }

    name := r.FormValue("name")

}
...