我想构建一个休息应用程序,我必须在其中获取通过 post 作为 xml 发送的值。数据如何恢复?
我正在使用回声框架。
您需要结合使用 Echo 的 Binding 功能和 struct 标签来提供您期望的 XML 键的名称。
type DoThingRequest struct {
Name string `xml:"name"`
}
e.POST("/do_thing", func(c echo.Context) (err error) {
body := new(DoThingRequest)
if err := c.Bind(body); err != nil {
return
}
// Do some stuff...
}
有关绑定的更多信息和选项,请参阅https://echo.labstack.com/guide/binding/。
您可以使用以下函数,其中“值”对应于包装标签名称。
func xmlEndpoint(c echo.Context) error {
// get xml from request body
xml := c.Request().Body
// parse xml
var data map[string]interface{}
if err := xml.Unmarshal(data); err != nil {
return err
}
// get value from xml
value := data["value"].(string)
}