我有一个非常简单的Sinatra应用程序,只会在操作中注销params,然后我使用curl以xml格式发送post数据,但是sinatra没有得到解析的xml:
echo '<something>tyrael tong</something>' | curl -X POST -H 'Content-Type: text/xml' -d @- http://localhost:9528/status/update
我通过谷歌搜索没有解决方案。我想自己解析xml帖子数据吗?
答案 0 :(得分:2)
试试这段代码 需要'plist'
post 'some/route'
content_type :xml
value=Plist::parse_xml(request.body)
end
答案 1 :(得分:2)
找一个机架解析器:https://github.com/achiu/rack-parser可以完成我想要的工作:将帖子体解析为参数。
P.S。并且需要将内容类型设置为“application / xml”
答案 2 :(得分:1)
是的,内容类型只是服务器如何处理它的提示。如果您的服务器可以接收说XML或JSON,则内容类型可以告诉您如何解析它。
答案 3 :(得分:0)
由于你的帖子消息的主体是一个xml,它不会被rails / sinatra解析。如果要完成解析,则需要更改要发送的数据格式,并将内容类型设置为“application / x-www-form-urlencoded”。然后Sinatra将解析该数据并将其放入params哈希。