我正在尝试从请求中读取,然后使用该结果向另一个端点发出 POST 请求,然后处理其结果,然后以 JSON 形式返回其结果。
到目前为止,我有以下代码:
// POST
func (u *UserResource) authenticate(request *restful.Request, response *restful.Response) {
Api := Api{url: "http://api.com/api"}
usr := new(User)
err := request.ReadEntity(&usr)
if err != nil {
response.WriteErrorString(http.StatusInternalServerError, err.Error())
return
}
api_resp, err := http.Post(Api.url, "text/plain", bytes.NewBuffer(usr))
if err != nil {
response.WriteErrorString(http.StatusInternalServerError, err.Error())
return
}
defer api_resp.Body.Close()
body, err := ioutil.ReadAll(api_resp.Body)
response.WriteHeader(http.StatusCreated)
err = xml.Unmarshal(body, usr)
if err != nil {
fmt.Printf("error: %v", err)
return
}
// result, err := json.Marshal(usr)
// response.Write(result)
response.WriteEntity(&usr)
fmt.Printf("Name: %q\n", usr.UserName)
}
我正在使用Go Restful包进行写入和读取。
编译文件时出现此错误:
src\login.go:59: cannot use usr (type *User) as type []byte in argument to bytes.NewBuffer
解决此问题的最佳方法是什么,以便我可以正确执行有效负载的 POST?
相关分类