我正在尝试使用 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 回答
- 0 关注
- 165 浏览
添加回答
举报
0/150
提交
取消