Demo 学 Echo Part3 解析HTTP请求
解析HTTP请求
package main
import (
"fmt"
"net/http"
"github.com/labstack/echo"
)
type User struct {
Name string `json:"name" form:"name" query:"name"`
Email string `json:"email" form:"email" query:"email"`
}
func main() {
r := echo.New()
r.Any("/user", func(c echo.Context) (err error) {
u := new(User)
if err = c.Bind(u); err != nil {
return
}
return c.JSON(http.StatusOK, u)
})
fmt.Println("server started at :9000")
r.Start(":9000")
}
测试验证
curl -X POST http://localhost:9000/user \
-d 'name=Joe' \
-d 'email=nope@novalagung.com'
# output => {"name":"Nope","email":"nope@novalagung.com"}
curl -X POST http://localhost:9000/user \
-H 'Content-Type: application/json' \
-d '{"name":"Nope","email":"nope@novalagung.com"}'
# output => {"name":"Nope","email":"nope@novalagung.com"}
curl -X POST http://localhost:9000/user \
-H 'Content-Type: application/xml' \
-d '<?xml version="1.0"?>\
<Data>\
<Name>Joe</Name>\
<Email>nope@novalagung.com</Email>\
</Data>'
# output => {"name":"Joe","email":"nope@novalagung.com"}
很神奇,没有定义xml,居然也可以解析出来
最后修改于 2019-08-17