求助:关于beego文档获取request body的内容

在beego文档这一段 在 API 的开发中,我们经常会用到 JSON 或 XML 来作为数据交互的格式,如何在 beego 中获取 Request Body 里的 JSON 或 XML 的数据呢?

在配置文件里设置 copyrequestbody = true 在 Controller 中 func (this *ObjectController) Post() { var ob models.Object json.Unmarshal(this.Ctx.Input.RequestBody, &ob) objectid := models.AddOne(ob) this.Data["json"] = "{\"ObjectId\":\"" + objectid + "\"}" this.ServeJSON() } 初学者 刚好在学习案例中卡在这个问题没法理解 继续学习下去 求帮助 如果实在解释麻烦给下资料也行

谢谢大家拜托了

已邀请:

CurveSoft - 70后Go爱好者

赞同来自:

RequestBody就是HTTP请求里去掉头部以后的Body部分,在现代的RESTFul API客户端调用API的时候,常常把需要提交的数据以json形式放到Body里提交,这个功能就是方便后端获取这部分数据的

yangshuai1228 - 嘿嘿

赞同来自:

感谢帮助 那我往这方面资料看看

yangshuai1228 - 嘿嘿

赞同来自:


func (c *HomeController) Post() {
    result := make(map[string]string)
    t := new(md.Test)
    var (
        err error
    )
    if err = json.Unmarshal(c.Ctx.Input.RequestBody, t); err == nil {
        // 获得struct表名
        // structName := reflect.Indirect(reflect.ValueOf(company)).Type().Name()

        if err = md.AddTest(t); err == nil {
            result["code"] = "success"
        } else {
            result["code"] = "failed"
            result["message"] = "数据创建失败"
            result["debug"] = err.Error()
        }
    } else {
        result["code"] = "failed"
        result["message"] = "请求数据解析失败"
        result["debug"] = err.Error()
    }
    c.Data["json"] = result
    c.ServeJSON()
}

type Test struct {
    Id   int64  `orm:"column(id);pk;auto" json:"id"`
    Name string `orm:"unique" json:"Name"`
}

知道了原理 按着代码打 通不过啊.....报错 { "code": "failed", "debug": "invalid character 'u' looking for beginning of value", "message": "请求数据解析失败" }

llliiinnn - 死肥宅

赞同来自:

json.Unmarshal(c.Ctx.Input.RequestBody, &t)

要回复问题请先登录注册