为了账号安全,请及时绑定邮箱和手机立即绑定

发送 JSON 请求以测试 beego 中的 Endpoint API 失败并显示空体

发送 JSON 请求以测试 beego 中的 Endpoint API 失败并显示空体

Go
慕慕森 2021-12-07 15:02:43
我正在尝试使用 beego 框架测试我的 REST API 的端点。我的测试函数低于我用来发送 JSON 请求的函数:func testHTTPJsonResp(url string) string {    var jsonStr = []byte(`{"title":"Buy cheese and bread for breakfast."}`)    req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))    req.Header.Set("X-Custom-Header", "myvalue")    req.Header.Set("Content-Type", "application/json")    beego.Error(err)    w := httptest.NewRecorder()    beego.BeeApp.Handlers.ServeHTTP(w, req)    beego.Debug(w)    return w.Body.String()}服务器确实收到请求,但输入正文始终empty用于请求。类似的,我用来将表单数据发送到服务器的函数works fine。func testHTTPResp(httpProt, url string, params map[string]interface{}) string {    bodyBuf := &bytes.Buffer{}    bodyWriter := multipart.NewWriter(bodyBuf)    for key, val := range params {        beego.Error(key + val.(string))        _ = bodyWriter.WriteField(key, val.(string))    }    contentType := bodyWriter.FormDataContentType()    bodyWriter.Close()    r, _ := http.NewRequest(httpProt, url, bodyBuf)    r.Header.Add("Content-Type", contentType)    w := httptest.NewRecorder()    beego.BeeApp.Handlers.ServeHTTP(w, r)    beego.Debug(w)    return w.Body.String()}问题:为什么服务器接收 JSON 请求正文为空,而类似的表单编码数据正常。已经坚持了几天了,任何指针都非常感谢。
查看完整描述

1 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

在 Beego 中默认禁用读取请求正文。您需要将以下行添加到app.conf文件中

copyrequestbody = true

这解决了这个问题。


查看完整回答
反对 回复 2021-12-07
  • 1 回答
  • 0 关注
  • 165 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信