2014-01-17 15 views
0

我有一個SOAP客戶端,並想用'74326'值查詢它。請幫我建立它。savon2請顯示查詢的例子

<xs:element name="CheckContactor"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="INN" type="xs:string"/> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 

我想通過以下方式來實現這一目標:

client = Savon.client(wsdl: ENV['SOAP_WSDL'], 
         basic_auth: [ENV['SOAP_USERNAME'], 
         ENV['SOAP_PASSWORD']]) 
@soap = client.call(:check_contactor, 
        message: { complex_type: { inn: '1234' } }) 

請給我任何的例子!

+0

我們需要看看你是什麼試過。請包括您編寫的源代碼。 –

+0

@theTinMan,我寫了它 – asiniy

回答

0

我的代碼只是:

client = Savon.client(wsdl: ENV['SOAP_WSDL'], 
        basic_auth: [ENV['SOAP_USERNAME'], 
        ENV['SOAP_PASSWORD']]) 

@soap = client.call(:check_contactor, message: { 'INN' => '1234' }) 
1

您是否收到任何錯誤?更多的信息將是很好的給你一個很好的答案。例如:

WSDL:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mag="http://magiccompany.com/supermagic"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <mag:example> 
     <someStuff>123</someStuff> 
     <someAuthStuff xmlns:n2="http://magiccompany.com/specialstuff" 
     xsi:type="n2:SpecialLogin"> 
      <username>abc</username> 
      <password>test123</password> 
     </someAuthStuff> 
     </mag:example> 
    </soapenv:Body> 
</soapenv:Envelope> 

紅寶石:

require 'savon' 
client = Savon.client(wsdl: 'wsdl/magic.wsdl', ssl_verify_mode: :none, ssl_version: :TLSv1) 

client.call(:example, message: { 
    someStuff: 123, 
    someAuthStuff: { 
    username: "abc", 
    password: "test123" 
    }, 
    :attributes! => { 
    someAuthStuff: { 
    "xsi:type" => "n2:SpecialLogin", 
    "xmlns:n2" => "http://magiccompany.com/specialstuff" 
    } 
} 
}) 

參考:https://coderwall.com/p/erwfda

+0

塞爾吉奧,會盡快給你示例 – asiniy

+0

塞爾吉奧,你能給我寫一個查詢我的結構的例子嗎? – asiniy

+0

請提供完整的wsdl文件。 –