2015-04-10 7 views
0

Ребята У меня проблема с обработкой wsdl. Cerberus FTP-сервер имеет собственный API для WSDL конфигурации сервера www.cerberusftp.com/support/help/webservices.htm Я попытался выполнить некоторые функции с рубином и Савоном, как это:Доступ к API Cerberus API с ruby ​​/ savon

#!/usr/bin/ruby 
# -*- coding: utf-8 -*- 
require 'savon' 
client = Savon.client(wsdl: "http://192.168.1.5:10001/wsdl/Cerberus.wsdl") 
response = client.call(:server_information) do 

    message credentials: {user: "admin", password: "123"} 
end 

От сниффера I можно увидеть запрос POST

<?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:tns="http://cerberusllc.com/service/cerberusftpservice" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> 
- <env:Body> 
- <tns:ServerInformationRequest> 
- <tns:credentials> 
    <tns:user>admin</tns:user> 
    <tns:password>123</tns:password> 
    </tns:credentials> 
    </tns:ServerInformationRequest> 
    </env:Body> 
    </env:Envelope> 

Также я попробовал инструмент Membarene клиента SOAP

<s12:Envelope xmlns:s12='http://www.w3.org/2003/05/soap-envelope'> 
    <s12:Body> 
    <ns1:ServerInformationRequest xmlns:ns1='http://cerberusllc.com/service/cerberusftpservice'> 
     <ns1:credentials xmlns:ns1='http://cerberusllc.com/common'> 
     <ns1:user>admin</ns1:user> 
     <ns1:password>123</ns1:password> 
     </ns1:credentials> 
    </ns1:ServerInformationRequest> 
    </s12:Body> 
</s12:Envelope> 

Это Запрос POST немного отличается, и он работает. Любая идея, как сделать то же самое в ruby ​​+ savon?

ответ

0

Мой стандартный ответ:

  1. загрузить SoapUI
  2. построить действующий, успешный вызов
  3. перестроения в Руби Савоном (не RoR)
  4. задавать вопросы здесь, и вы получите помощь: -)
0

Я решил эту проблему. Я генерирую XML-запрос вручную. выглядит так:

client = Savon.client(wsdl: "http://example.com:10001/wsdl/Cerberus.wsdl") 
variable = client.call(:add_group xml: "your xml ") # you can generate this xml via SoapUI tool or Membarene SOAP client. 

 Смежные вопросы

  • Нет связанных вопросов^_^