如果我使用原始xml的savon一切正常,这是原始的xml示例:
if((line1 == null && line2 != null) || (line2 == null && line1 != null))
如果我使用builtin方法调用该方法,则会出现错误,这是代码:
request = client.call(:authenticate, xml:'<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="xxxx/">
<SOAP-ENV:Body>
<ns1:authenticate>
<ns1:username>user</ns1:username>
<ns1:password>pwd</ns1:password>
<ns1:cultureInfo>it</ns1:cultureInfo>
</ns1:authenticate>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>')
这是上面代码生成的xml:
credentials={ username: 'user', password: 'pwd!!', cultureInfo: "it" }
response = client.call(:authenticate, message: credentials)
任何想法?
答案 0 :(得分:0)
我通常会这样做(未经测试)。它不漂亮但它有效。
credentials = { 'ns1:username' => 'user',
'ns1:password' => 'pwd!!',
'ns1:cultureInfo' => "it" }
response = client.call(:authenticate, message: credentials)
您可能希望将ns1
的使用调整为您案例中实际使用的命名空间。