### 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
}
~~~