package main

/*
Form相关方法定义。
type Context interface {
    FormValue(string) string
    FormValues() map[string][]string
    FormFile(string) *multipart.FileHeader
    FormFiles() map[string][]*multipart.FileHeader
    ...
}

如果body是url格式,使用FormValue和GetQuery获取数据。
如果body是form格式,使用FormValue获取数据
对于form上传文件只能使用FormFile方法获得文件。
*/

import (
    "github.com/eudore/eudore"
    "github.com/eudore/eudore/component/httptest"
)

func main() {
    app := eudore.NewApp()
    app.AnyFunc("/*path", func(ctx eudore.Context) {
        ctx.Debug("Content-Type", ctx.GetHeader(eudore.HeaderContentType))
        ctx.FormValue("haha")
        ctx.FormValue("name")
        ctx.FormFile("haha")
        ctx.FormFile("file")
        for key, val := range ctx.FormValues() {
            ctx.Debug("get from value:", key, val)
        }

        for key, file := range ctx.FormFiles() {
            ctx.Debug("get from file:", key, file[0].Filename)
        }
    })

    client := httptest.NewClient(app)
    client.NewRequest("POST", "/").WithBodyFormValue("name", "my name").WithBodyFormValue("message", "msg").WithBodyFormFile("file", "contextBindForm.go", "contextBindForm file content").Do()
    client.NewRequest("POST", "/").WithBodyJSONValue("name", "my name").WithBodyJSONValue("message", "msg").Do()

    app.Listen(":8088")
    // app.CancelFunc()
    app.Run()
}

results matching ""

    No results matching ""