我正在尝试使用go创建一个POST函数来在数据库中插入数据。
我的型号:
type Funcstruct {
Name string `json:"Name"`
Status string `json:"Status"`
}
我的发布功能:
//POST FUNC
func (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请求,在form-data中传递Name和Status,但我收到:
2019/07/12 22:20:38 http:panic serving [::1]:54600:数字文本中的字符“-”无效
4条答案
按热度按时间wmomyfyw1#
我在Postman中使用表单数据时也遇到了同样的问题,我最终决定使用JSON,并且成功了
rqmkfv5c2#
您应该将
form-data
更改为raw->JSON
并发送如下内容:xjreopfe3#
我在postman中使用multipart/form-data时遇到了同样的问题。最后我解决了。
我用的是gin-gonic,但我认为这是同一个问题。
我的代码之前
我的代码之后
所以,也许你不应该使用
decoder := json.NewDecoder(r.Body)
来解析数据。zpqajqem4#
将JSON数据从PostMan发送到解组