gpt4 book ai didi

http - beego POST 请求体始终为空

转载 作者:IT王子 更新时间:2023-10-29 01:23:46 27 4
gpt4 key购买 nike

我正在使用 Beego 的便捷方法来解析请求正文值并具有以下内容:

路由器文件:

    apiNamespace := beego.NewNamespace("/api")

apiNamespace.Router("/sessions/google/new", &controllers.SessionsController{}, "get:GoogleNewSession")

beego.AddNamespace(apiNamespace)

Controller 代码:

func (c *SessionsController) URLMapping() {
c.Mapping("GoogleNewSession", c.GoogleNewSession)
}

func (c *SessionsController) GoogleNewSession() {

// Always serve JSON
defer func() {
c.ServeJson()
}()

// This is always blank
log.Printf("'Received %+v'", c.Ctx.Input.RequestBody)

c.Ctx.ResponseWriter.WriteHeader(200)
return

// truncated
}

前端 JS( super 代理):

    request
.post('/sessions/google/new')
.use(prefix)
.send({ code: authCode })
.set('Accept', 'application/json')
.end(function(err, res){
console.log("******* request", res.request)
if (res.ok) {
var body = res.body;
console.log('yay got ' + JSON.stringify(res.body));
} else {
console.log("***** err", err);
console.log("***** not ok", res.text);
}
});

当 super 代理请求触发时,我可以在日志中看到路径已正确匹配。但是,c.Ctx.Input.RequestBody 始终为空。

我曾尝试使用其他方式来触发请求,例如 Postman,但无济于事。在 GET 请求中,我能够正确检索查询参数。

有任何线索或建议可以帮助解决或调试此问题吗?

最佳答案

您需要在配置文件“conf/app.conf”中配置“copyrequestbody = true”。

默认为false,所以内容不会复制到c.Ctx.Input.RequestBody。

示例显示在文档中的“从请求正文中检索数据”部分。 ( http://beego.me/docs/mvc/controller/params.md )

关于http - beego POST 请求体始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30982891/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com