Gin 框架无法从 Postman 获取数据
Gin framework can not get the data from Postman
Gin框架无法从Postman获取数据,下面是一个demo:
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
type CreateRequest struct {
Username string `json:"username"`
Phone string `json:"phone"`
Password string `json:"password"`
}
func Signup(c *gin.Context) {
var r CreateRequest
if err := c.Bind(&r); err != nil {
fmt.Println(err)
}
fmt.Println("this is debug info:start")
fmt.Println(r.Username)
fmt.Println("this is debug info:end")
}
func main() {
r := gin.Default()
r.POST("/signup", Signup)
r.Run() // listen and serve on 0.0.0.0:8080
}
邮递员发送请求:
调试信息:
问题出在哪里?
我该怎么办?
根据您的屏幕,您似乎正在发送 x-www-form-urlencoded
请求,在这种情况下,您必须在 CreateRequest
结构中包含 form
标签:
type CreateRequest struct {
Username string `json:"username" form:"username"`
Phone string `json:"phone" form:"phone"`
Password string `json:"password" form:"password"`
}
您应该使用 form:"username"
以便 POST 使用 URI。除非你想 POST 使用 body JSON,否则你只能在你的结构中设置 json:"username"
。
Gin框架无法从Postman获取数据,下面是一个demo:
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
type CreateRequest struct {
Username string `json:"username"`
Phone string `json:"phone"`
Password string `json:"password"`
}
func Signup(c *gin.Context) {
var r CreateRequest
if err := c.Bind(&r); err != nil {
fmt.Println(err)
}
fmt.Println("this is debug info:start")
fmt.Println(r.Username)
fmt.Println("this is debug info:end")
}
func main() {
r := gin.Default()
r.POST("/signup", Signup)
r.Run() // listen and serve on 0.0.0.0:8080
}
邮递员发送请求:
调试信息:
问题出在哪里?
我该怎么办?
根据您的屏幕,您似乎正在发送 x-www-form-urlencoded
请求,在这种情况下,您必须在 CreateRequest
结构中包含 form
标签:
type CreateRequest struct {
Username string `json:"username" form:"username"`
Phone string `json:"phone" form:"phone"`
Password string `json:"password" form:"password"`
}
您应该使用 form:"username"
以便 POST 使用 URI。除非你想 POST 使用 body JSON,否则你只能在你的结构中设置 json:"username"
。