網頁

2021/7/7

Golang Gin 接收POST form表單參數 receive post form params

Gin應用程式取得POST form表單欄位參數的方式如下。


範例環境:

  • Go 1.16
  • Gin 1.7.2

例如下面簡單的表單網頁demo.html,提交位址為http://localhost:8080/form

demo.html

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <form action="http://localhost:8080/form" method="POST">
        name:<input name="name" type="text"><br>
        age:<input name="age" type="number"><br>
        <input type="submit">
    </form>
</body>
</html>

Gin的APIPOST | /form負責接收表單傳來的參數。使用gin.ContextPostForm()或可設定預設值的DefaultPostForm()方法取得表單對應名稱欄位的輸入值。

main.go

package main

import "github.com/gin-gonic/gin"

func main() {
    router := gin.Default()

    router.POST("/form", func(c *gin.Context) {
        name := c.PostForm("name")
        age := c.DefaultPostForm("age", "0")

        c.JSON(200, gin.H{
            "name": name,
            "age":  age,
        })
    })

    router.Run()
}

啟動專案用curl命令發送http POST request結果如下。

$ curl -X POST -F 'name=john' -F 'age=33' http://localhost:8080/form
{"age":"33","name":"john"}

若沒有輸入age欄位值結果如下。

$ curl -X POST -F 'name=john' http://localhost:8080/form
{"age":"0","name":"john"}


沒有留言:

張貼留言