zoukankan      html  css  js  c++  java
  • 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数据
    }
    
    
  • 相关阅读:
    写日志文件
    内存文件映射应用举例『转』
    HOOK编程
    获取当前进程的名称
    C++实现FTP文件传输
    C/C++ 实现windows进程/线程/模块 遍历
    Unicode下的CString与char *转换
    MFC常用基本数据类型
    geos 3.6.1编译 win7 vs2015
    JQuery Mobile iscroll插件使用教程及注意事项
  • 原文地址:https://www.cnblogs.com/liufei1983/p/10686845.html
Copyright © 2011-2022 走看看