如何从请求中读取然后使用该结果执行 POST 请求然后处理其结果

我正在尝试从请求中读取,然后使用该结果向另一个端点发出 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?


繁星coding
浏览 168回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go