0
我有下面的測試HTTP請求的代碼進行測試:圍棋 - 如何使用http.NewRequest
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
一個字符串,並還試圖用結構與json.Marshal
。
它們都不起作用。
有沒有一種方法,我可以代碼bodyReader
有效的第三個參數爲http.NewRequest
?
作爲用於JSON NewReader
輸入類似的要求是:
bodyReader := strings.NewReader("{'Username': '12124', 'Password': 'testinasg', 'Channel': 'M'}")
STRUCT字段是: Username, Password, Channel
strings.NewReader()是創建請求正文閱讀器的有效方法。究竟是什麼失敗?它是編譯錯誤還是運行時其他錯誤。如果是運行時錯誤,它從哪裏來?發佈的代碼中沒有錯誤測試。 – 2014-10-12 01:29:40
這是不正確解碼與JSON和結構 – 2014-10-12 01:36:02
@SimonFox JSON是我的問題的字符串。它不能正確解碼,因爲我在具有'Useranem','Password'和'Channel'的hello'結構體上使用'ReadEntity'在'request.ReadEntity'後面,當我做'fmt.Println(hello.Username) 「我什麼也得不到,但得到一個恐慌的錯誤。這隻會發生在JSON而非XML – 2014-10-12 03:23:43