Ruby on rails 如何使用savon发出此soap请求

Ruby on rails 如何使用savon发出此soap请求,ruby-on-rails,soap,savon,Ruby On Rails,Soap,Savon,有人能告诉我如何使用savon提出此soap请求: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ent="some_adress"> <soapenv:Header> <ent:providerID>?</ent:providerID> </soapenv:Header> <soap

有人能告诉我如何使用savon提出此soap请求:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ent="some_adress">
   <soapenv:Header>
      <ent:providerID>?</ent:providerID>
   </soapenv:Header>
   <soapenv:Body>
      <ent:operationRequest>
         <ent:operation>
            <!--You may enter the following 2 items in any order-->
            <ent:id>operation_id</ent:id>
            <ent:params>
               <!--1 or more repetitions:-->
               <ent:entry>
                  <ent:key>param1_name</ent:key>
                  <ent:value>param1_valuee</ent:value>
               </ent:entry>
               <ent:entry>

                  <ent:key>param2_name</ent:key>
                  <ent:value>param2_value</ent:value>
               </ent:entry>
            </ent:params>
         </ent:operation>
      </ent:operationRequest>
   </soapenv:Body>
</soapenv:Envelope>
test_message = {:param_1_name => 'param 1 value', :param_2_name => 'param 2 value'}

    ops = wsdl_client.operation(:request_operation)
    ops.build(message: test_message).to_s
结果与soapUi请求非常不同:

<?xml version="1.0" encoding="UTF-8" ?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="some_adress" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="some_adress">
    <env:Header>
        <ent:providerID>999</ent:providerID>
    </env:Header>
    <env:Body>
        <ins0:operationRequest>
            <ns1:param1Name>param 1 value</ns1:param1Name>
            <ns1:param2Name>param 2 value</ns1:param2Name>
        </ins0:operationRequest>
    </env:Body>
</env:Envelope>

999
参数1值
参数2值
我不知道如何将这个“条目”添加到savon请求中


谢谢你,gyus

我找到了一个方法

request = {
      operation: {
          id: '123',
          params: [
              entry: [{
                  key: 'param1',
                  value: '9999999'
              },
              {
                  key: 'param2',
                  value: 'ASD'
              }]
          ]
      }
  }
我编写了这个散列,并将其作为消息传递到call方法中

谢谢

如果有帮助,请参阅此帖子