gpt4 book ai didi

go - 发送 JSON 请求以测试 beego 中的端点 API 失败,正文为空

转载 作者:IT王子 更新时间:2023-10-29 01:15:26 25 4
gpt4 key购买 nike

我正在尝试使用 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()
}

服务器确实收到了请求,但请求的输入正文始终为

类似的,我用来将表单数据发送到服务器的函数工作正常

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 请求主体为空,而类似的表单编码数据正常。几天来一直坚持这个问题,非常感谢任何指点。

最佳答案

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

copyrequestbody = true

这解决了问题。

关于go - 发送 JSON 请求以测试 beego 中的端点 API 失败,正文为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34940659/

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