rails使用builder生成xml
我想在我的网站上使用hipay。 所以我需要在动作中生成一个xml然后通过post发送到hipay网站。
我的问题是:
我怎么能用dinamically创建一个xml然后,在同一个动作中,通过post发送这个xml?
我的控制器中的示例
def action_generate_xml @xml = Builder::XmlMarkup.new() # I want generate my xml here # # # End generate xml #Now i want send My XML via post #CODE FOR SEND VIA POST end
提前致谢
假设XML数据位于ActiveRecord对象中,则调用to_xml将为您提供该对象的xml表示forms。 您可以使用Ruby的Net:HTTP模块来处理post。
http = Net::HTTP.new("www.thewebservicedomain.com") response = http.post("/some/path/here", your_model_object.to_xml)
如果你想在你的控制器中生成你的XML(不是很像Rails,但你仍然可以这样做)使用builder gem:
xml = Builder::XmlMarkup.new xml.instruct! :xml, :verison => "1.0" # Or whatever your requirements are # Consult the Builder gem docs for different ways you can build up your XML, this is just a simple example. xml.widgets do xml.widget do xml.serial_number("12345") xml.name("First Widget") xml.any_other_tag_you_need("Contents of tag") end end # And now send the request http = Net::HTTP.new("www.thewebservicedomain.com") response = http.post("/some/path/here", xml)
第二个示例生成以下XML字符串,并将HTTP POST发送到目标服务器:
12345 First Widget Contents of tag