Веб-сервис Ruby

#ruby-on-rails #ruby

#ruby-on-rails #ruby

Вопрос:

Я новичок в Ruby. У меня возникли проблемы с передачей параметров веб-методу.

 factory = SOAP::WSDLDriverFactory.new('https://api.affili.net/V2.0/Logon.svc?wsdl')
driver = factory.create_rpc_driver

driver.Logon(...)
  

Как я могу передать требуемые параметры? Я пытался передать массив, но параметры равны нулю, я попытался создать класс для параметров .. но возникают те же проблемы.

WSDL для входа в систему является

 <xsd:complexType name="Logon">
     <xsd:sequence>
     <xsd:element minOccurs="0" name="Username" nillable="true" type="xsd:string"/>
     <xsd:element minOccurs="0" name="Password" nillable="true" type="xsd:string"/>
     <xsd:element name="WebServiceType" type="tns:WebServiceTypes"/>
     <xsd:element minOccurs="0" name="DeveloperSettings" nillable="true"          type="tns:TokenDeveloperDetails"/>
  <xsd:element minOccurs="0" name="ApplicationSettings" nillable="true" type="tns:TokenApplicationDetails"/>
</xsd:sequence>
</xsd:complexType>
  <xsd:element name="Logon" nillable="true" type="tns:Logon"/>
  

Как я могу передать параметры методу Logon?

Спасибо

Ответ №1:

Передайте параметры в виде хэша методу входа в систему

 factory = SOAP::WSDLDriverFactory.new('https://api.affili.net/V2.0/Logon.svc?wsdl')
driver = factory.create_rpc_driver

parameters = {
                'Username' => 'your-username',
                'Password' => 'your-password',
                'WebServiceType' => 'your-webservicetype',
                'DeveloperSettings' => 'your-settings',
                'ApplicationSettings' => 'your-appsettings'
              }

driver.Logon(parameters)
  

Удачи!