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

Go - 如何使用 http.NewRequest 进行测试

Go - 如何使用 http.NewRequest 进行测试

Go
料青山看我应如是 2021-08-23 15:53:20
我有以下用于测试 http 请求的代码:func TestAuthenticate(t *testing.T) {    api := &ApiResource{}    ws := new(restful.WebService)    ws.Consumes(restful.MIME_JSON, restful.MIME_XML)    ws.Produces(restful.MIME_JSON, restful.MIME_JSON)    ws.Route(ws.POST("/login").To(api.Authenticate))    restful.Add(ws)    bodyReader := strings.NewReader("<request><Username>42</Username><Password>adasddsa</Password><Channel>M</Channel></request>")    httpRequest, _ := http.NewRequest("POST", "/login", bodyReader)//  httpRequest.Header.Set("Content-Type", restful.MIME_JSON)    httpRequest.Header.Set("Content-Type", restful.MIME_XML)    httpWriter := httptest.NewRecorder()    restful.DefaultContainer.ServeHTTP(httpWriter, httpRequest)}我尝试将 json 用作具有相同字符串的字符串,NewReader并尝试将 struct 与json.Marshal.它们都不起作用。有没有一种方法可以为 编码bodyReader一个有效的第三个参数http.NewRequest?与NewReaderJSON 中的输入类似的请求是:bodyReader := strings.NewReader("{'Username': '12124', 'Password': 'testinasg', 'Channel': 'M'}")结构字段是: Username, Password, Channel
查看完整描述

1 回答

?
ABOUTYOU

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

JSON 无效。JSON"用于引用字符串,而不是'.

使用这行代码创建请求正文:

bodyReader := strings.NewReader(`{"Username": "12124", "Password": "testinasg", "Channel": "M"}`)

我使用原始字符串文字来避免"在 JSON 文本中引用。


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

添加回答

举报

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