beego 部署时出现Error:unexpected end of JSON input

Noya ·
更新时间:2024-11-14
· 791 次阅读

GO beego 部署时出现Error:unexpected end of JSON input 文章目录GO beego 部署时出现Error:unexpected end of JSON input1、Note2、解决方法原理实现3、参考
beego Error: unexpected end of JSON input 1、Note

在日常的Api开发中,我们经常会使用Json来作为数据交互的方式,特别是前后端分离后
此时,如何在beego中获取 Request Body 的内容呢?
官方配置
1、在配置文件中添加 copyrequestbody = true
2、在controller 使用this.Ctx.Input.RequestBody获取Body数据, 然后利用json.Unmarshal 解析 Request Body的数据

func (this *ObjectController) Post() {
var ob models.Object
var err error
if err = json.Unmarshal(this.Ctx.Input.RequestBody, &ob); err == nil {
objectid := models.AddOne(ob)
this.Data[“json”] = “{“ObjectId”:”" + objectid + “”}"
} else {
this.Data[“json”] = err.Error()
}
this.ServeJSON()
}

但在开发中这样确实没有问题,但编译部署之后会出现 Error: unexpected end of JSON input

2、解决方法 原理

1、beego 默认的参数配置文件 conf/app.conf (不区分大小写)
beego 会将配置参数写入 beego.BConfig 中, 实现参数配置化

[app.conf]
设置app名称
appname = Hello_World

[beego.BConfig]
beego.BConfig.AppName = Hello_World

2、当设置的配置参数无效的时候,我们可以手动设置未生效的配置参数

实现

我们在main包中, 添加初始化 init 函数, 并将失效配置写入其中

package main import ( " "github.com/astaxie/beego" ) func init() { beego.BConfig.CopyRequestBody = true } func main() { beego.Run() } 3、参考

Beego>controller >参数配置


作者:Sinkmist



JSON beego error input

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章