猿问

Post API 在数字文字中获取无效字符“-”

我正在尝试使用 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 请求,传递表单数据中的名称和状态,但我收到:


2019/07/12 22:20:38 http: 恐慌服务 [::1]:54600: 数字文字中的无效字符“-”


呼啦一阵风
浏览 179回答 4
4回答

不负相思意

我在邮递员中使用表单数据时遇到了同样的问题,我最终决定使用 json 并且它有效

烙印99

您应该更改form-data为raw->JSON并像这样发送:{    "Name" : "morefeizi",    "Status" : "1"}

慕田峪7331174

我在邮递员中使用多部分/表单数据时遇到同样的问题。最后我解决了它。我用杜松子酒,但我认为这是同样的问题。我之前的代码type XXXReq struct {    FiledA string `form:"file_a"`}var req XXXReqif err := ctx.ShouldBindJSON(&req); err != nil {    DOSOMETHING}我的代码之后type XXXReq struct {    FiledA string `form:"file_a"`}var req XXXReqif err := ctx.ShouldBind(&req); err != nil {    DOSOMETHING}所以,也许你不应该使用它decoder := json.NewDecoder(r.Body)来解析数据。

12345678_0001

将 JSON 数据从 PostMan 发送到 unmarshal
随时随地看视频慕课网APP

相关分类

Go
我要回答