Всегда получал пустое тело из запроса POST - PullRequest
0 голосов
/ 31 марта 2019

Я настраиваю HTTP-сервер и хочу, чтобы /test route принимал POST-запрос, но с этим телом кода всегда пусто. Это мое тело запроса:

{
    "asd": "123"
}

Это мой код:

func main() {
    router := mux.NewRouter()
    router.HandleFunc("/test", handleData).Methods("POST")
    log.Fatal(http.ListenAndServe(":80", router))
}

type test1 struct {
    asd string
}

func handleData(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "application/json")
    var test test1
    _ = json.NewDecoder(r.Body).Decode(&test)
    json.NewEncoder(w).Encode(test)
}

1 Ответ

3 голосов
/ 31 марта 2019

Поле asd равно не экспортировано .Измените его на Asd string `json:"asd"`.Идентификаторы (типы, функции, поля, методы, переменные, константы и т. Д.), Начинающиеся с заглавной буквы, экспортируются, идентификаторы, начинающиеся со строчной буквы, не экспортируются.Пакет json работает только с экспортированными полями, неэкспортированные игнорируются.

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