POST请求始终有空的正文

时间:2019-03-31 10:32:52

标签: go

我正在设置HTTP服务器,并且希望/test路由接受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 个答案:

答案 0 :(得分:3)

asd字段是未导出。将其更改为Asd string `json:"asd"`。导出以大写字母开头的标识符(类型,函数,字段,方法,变量,常量等),不导出以小写字母开头的标识符。 json包仅适用于导出的字段,未导出的字段将被忽略。