### HTTP 请求
#### 读取数据
* Form 表单数据
表单数据可以通过名称读取,使用这个方法 Context#FormValue(key string) string
~~~
// Handler
func(ctx dotweb.Context) error {
name := ctx.FormValue("name")
ctx.WriteString(name)
return nil
}
~~~
* Get参数
url 请求参数可以通过名称获取,使用 Context#QueryString(key string) string
~~~
// Handler
func(ctx dotweb.Context) error {
name := ctx.QueryString("name")
ctx.WriteString(name)
return nil
})
~~~
* PostForm
PostForm可以通过名称获取, 可以使用 Context#PostFormValue(key string) string
~~~
// Handler
func(ctx dotweb.Context) error {
name := ctx.PostFormValue("name")
ctx.WriteString(name)
return nil
})
~~~
* Post Body
Post Body, 可以使用 Context.Request()#PostBody() []byte
~~~
// Handler
func(ctx dotweb.Context) error {
b := ctx.Request().PostBody()
ctx.Write(http.StatusOK, b)
return nil
})
~~~
#### 数据绑定
使用 Context#Bind(i interface{}) 绑定一个请求内容体到 go 的结构体。默认的绑定器支持解析 Content-Type 是 application/json,application/xml 和 form提交的数据。
下面是绑定请求数据到 User 结构体的例子
~~~
// User
type UserInfo struct {
UserName string
Sex int
}
// Handler
func(ctx dotweb.Context) (err error) {
user := new(User)
if err := ctx.Bind(user); err != nil {
return err
}
ctx.WriteString(fmt.Sprint(user))
return nil
}
~~~