beego框架,其中有个controller如下
func (m *MapWorker) Map() {
// 获取参数
word := m.Ctx.Input.Query("word")
// 统计词中各字符的出现次数
charNum := make(map[string]int)
for _, c := range word {
charNum[string(c)]++
}
// 向Reduce发起任务
data, err := json.Marshal(charNum)
if err != nil {
logger.Logger.Error("MapWorker json编码错误", zap.Error(err))
m.Ctx.Output.SetStatus(500)
return
}
url := "http://localhost:8080/reduce"
_, err = http.Post(url, "application/json", bytes.NewBuffer(data))
if err != nil {
logger.Logger.Error("Map向Reduce请求失败", zap.Error(err))
m.Ctx.Output.SetStatus(500)
}
}
下面是另一个controller,处理上面的请求的,第一句就是输出请求体
fmt.Println("请求体", r.Ctx.Input.RequestBody)
可是输出为空,这是怎么回事了?
路由配置如下,
beego.Router("/reduce", &controllers.ReduceWorker{}, "post:Reduce")
【相关推荐】