直接上常用的例子吧:
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数据 }
文章来源: https://blog.csdn.net/qq_41629756/article/details/96485636