zoukankan      html  css  js  c++  java
  • Beego基础学习(二)基本的路由设置实现get和post(json)请求

    一、简单路由配置实现get

    路由文件:

    package routers
    
    import (
        "github.com/astaxie/beego"
        "mypro/controllers"
    )
    
    func init() {
        beego.Router("/", &controllers.MainController{})
        beego.Router("/collection", &controllers.CollectionController{})
        beego.Router("/getmovieinfo/?:id/?:name", &controllers.GetMovieInfoController{})
    }

    控制器文件

    package controllers
    
    import (
        "github.com/astaxie/beego"
    )
    
    type GetMovieInfoController struct {
        beego.Controller
    }
    
    func (c *GetMovieInfoController)  Get() {
        id := c.GetString(":id")
        name := c.GetString(":name")
        id2 := c.Ctx.Input.Param(":id")
        name2 := c.Ctx.Input.Param(":name")
        c.Ctx.WriteString("第一种id:" + id + "第一种name:" + name + "第二种id:" + id2 + "第二种name:" + name2 )
        c.TplName = "index.tpl"
    }

    、简单路由配置实现post(json)

    路由文件

    package routers
    
    import (
        "github.com/astaxie/beego"
        "mypro/controllers"
    )
    
    func init() {
        beego.Router("/", &controllers.MainController{})
        beego.Router("/collection", &controllers.CollectionController{})
        beego.Router("/getmovieinfo/?:id/?:name", &controllers.GetMovieInfoController{})
        beego.Router("/postmovieinfo", &controllers.GetMovieInfoController{}) //post
    
    }

    控制器文件

    package controllers
    
    import (
        "encoding/json"
        "fmt"
        "github.com/astaxie/beego"
    )
    
    type GetMovieInfoController struct {
        beego.Controller
    }
    type MovieInfo struct {
        Id string `json:"id"`            // 注意首字母大写
        Name   string `json:"name"`        // 并且写明与json字段的映射关系,否则Unmarshal函数不好用
    }
    
    func (c *GetMovieInfoController)  Post() {
        var MovieInfo_obj MovieInfo
        body := c.Ctx.Input.RequestBody //这是request的body 的json二进制数据
        fmt.Println(body)
        json.Unmarshal(body, &MovieInfo_obj)         //解析二进制json,把结果放进MovieInfo_obj中
        fmt.Println(MovieInfo_obj)
    
        c.Data["json"] = map[string]interface{}{"result": MovieInfo_obj, "msg": "获取成功","code":"200"}   // 设置返回值
        c.ServeJSON()     // 返回json数据
    }

    结果展示

     

  • 相关阅读:
    [SIP]SIP之穿越NAT 幻灯片
    此Slashdotcn模仿彼Slashdot
    [RTC]如何得到Interop.RTCCore.dll
    androidmanifest.xml权限中文说明
    Android Service学习之本地服务
    从问题看本质:socket到底是什么?
    Android小项目之服务【Service】
    listen函数
    Android开发资源完全汇总
    ANDROID基础知识普
  • 原文地址:https://www.cnblogs.com/wt645631686/p/9705304.html
Copyright © 2011-2022 走看看