golang web框架 beego 学习 (三) beego获取参数
A: 获取URL中的参数
router
func init() { beego.Router('/task/?:id/?:name', &controllers.TaskController{}) }
controller
func (c *TaskController) Get() { id1 := c.GetString(':id') name1 := c.GetString(':name') id2 := c.Ctx.Input.Param(':id') name2 := c.Ctx.Input.Param(':name') c.Ctx.WriteString('id1:' + id1 + ';name1' + name1 + ';id2:' + id2 + ';name2:' + name2) }
URL:
B 获取Request Body里的内容
第一步:在app.conf中加上 copyrequestbody = true
第二步:导入json包 import (
'encoding/json'
)下面是请求:
下面是controller的定义:
package controllers import ( 'encoding/json' 'github.com/astaxie/beego' ) type JsonController struct { beego.Controller } type User struct { Username string `json:'user_name'` // 注意Username必须首字母大写 Mobile string `json:'mobile'` // 并且写明与json字段的映射关系,否则Unmarshal函数不好用
} func (this *JsonController) Post() { var ob User //这是一个model,struct类型 body := this.Ctx.Input.RequestBody //这是获取到request的body 的json二进制数据 json.Unmarshal(body, &ob) //解析二进制json,把结果放进ob中 this.Data['json'] = map[string]interface{}{'result': false, 'msg': 'ok'} // 设置返回值this.ServeJSON() // 返回json数据}
赞 (0)