我正在尝试使用 go 创建一个 POST 函数来将数据插入到我的数据库中。我的型号:type Funcstruct { Name string `json:"Name"` Status string `json:"Status"`}我的帖子功能://POST FUNCfunc (app *App) createFunc(w http.ResponseWriter, r *http.Request) { decoder := json.NewDecoder(r.Body) var data Func err := decoder.Decode(&data) if err != nil { panic(err) } Name := data.Name Status := data.Status database, err := db.CreateDatabase() if err != nil { log.Fatal("Not connect to db") } _, err = database.Exec("INSERT INTO `func` (Name, Status) VALUES ($1, $2)", Name, Status) if err != nil { log.Fatal("Error inserting data") } log.Println("Alright!") w.WriteHeader(http.StatusOK)}所以我做了一个 go build,然后做了一个 ./nameproject因此,我进入 PostMan 并发出一个 post http 请求,传递表单数据中的名称和状态,但我收到:2019/07/12 22:20:38 http: 恐慌服务 [::1]:54600: 数字文字中的无效字符“-”
4 回答
慕田峪7331174
TA贡献1828条经验 获得超13个赞
我在邮递员中使用多部分/表单数据时遇到同样的问题。最后我解决了它。
我用杜松子酒,但我认为这是同样的问题。
我之前的代码
type XXXReq struct {
FiledA string `form:"file_a"`
}
var req XXXReq
if err := ctx.ShouldBindJSON(&req); err != nil {
DOSOMETHING
}
我的代码之后
type XXXReq struct {
FiledA string `form:"file_a"`
}
var req XXXReq
if err := ctx.ShouldBind(&req); err != nil {
DOSOMETHING
}
所以,也许你不应该使用它decoder := json.NewDecoder(r.Body)来解析数据。
- 4 回答
- 0 关注
- 167 浏览
添加回答
举报
0/150
提交
取消