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數據
}

 

 
        


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM