gpt4 book ai didi

ruby - 如何使用 xsi :types in Savon 的对象

转载 作者:数据小太阳 更新时间:2023-10-29 06:59:30 26 4
gpt4 key购买 nike

我正在尝试使用 Savon 来发出一些 SOAP 请求,但恐怕我需要超出一些基础知识。

我需要按照以下方式发送一些内容:

<env:Body>
<wsdl:methodName>
<parameter xsi:type='ValueClass'>value</parameter>
</wsdl:methodName>
</env:Body>

现在,如果我不必指定 xsi:type,这将是一个简单的问题:

client.method_name { |soap| soap.body = {:parameter => 'value'} }

问题出在参数中的xsi:type;由于我使用的 Web 服务是围绕多态性构建的,因此我需要明确指定参数的类型。有什么方法可以做到这一点(最好不必生成我自己的 XML?)我真的很想永远放弃 soap4r :)

谢谢!

最佳答案

在哈希中指定 XML 属性非常难看,但它是可能的:

client.method_name do |soap|
soap.body = {
:parameter => 'value',
:attributes! => { :parameter => { 'xsi:type' => ValueClass } }
}
end

请看:http://github.com/rubiii/savon/wiki/SOAP

在 Savon 支持 XML 模式属性之前,我建议您使用 Builder
(Savon 附带)生成您的 XML:

client.method_name do |soap|
xml = Builder::XmlMarkup.new
soap.body = xml.parameter "value", "xsi:type" => "ValueClass"
end

关于ruby - 如何使用 xsi :types in Savon 的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3751682/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com