req.FormValue не отображает значения req.body - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь выбрать значение в request.body, но получаю пустую строку. Карта формы также появляется как пустая. Что я делаю не так?

package user

import (
    "fmt"
    "net/http"

    "../../types"
)

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

    r.ParseForm()

    x := r.FormValue("name")
    fmt.Println(x)
}

Тело почтового запроса:

{
    "name":"Tom",
    "age":25
}

1 Ответ

2 голосов
/ 01 апреля 2020

Причина в том, что тело запроса - это не действительные данные формы, а большой двоичный объект данных JSON. Вам нужно будет разобрать его, прежде чем можно будет извлечь имя, например:

type data struct {
    Name string
    Age  int
}

func PostTest(w http.ResponseWriter, r *http.Request) {
    var d data
    json.NewDecoder(r.Body).Decode(&d) // Error handling omitted.
    fmt.Println(d.Name)
}

Вот Детская площадка , демонстрирующая это. Для краткости я опустил обработку ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...