2014-11-19 6 views
4

Я работаю над SOAP API, который имеет две операции, и для каждой операции требуются ключи API и множество других атрибутов. Итак, я смог выполнить запрос через SOAPUI, но у меня возникли проблемы с переводом этого кода на рубиновый код с использованием саван-джема (версия 2).Нужна помощь в переводе запроса SOAPUI в Ruby-код с использованием Savon gem

Вот скриншот запроса searchTours.

enter image description here

Теперь, как я tranlate его в рубиново-код с помощью Савон? Я пробовал следовать, но это не сработало.

client = Savon.client(wsdl: 'url goes here..') 

client.operations #=> [:tour_details_full, :search_records] 

message = {security_key: "SECURITYKEYS", attributes_one: "ValueOne", attribute_two: IntegerValue} 

response = client.call(:search_records, message: message) 

Сообщение об ошибке:

Савон :: SoapFault: (S: Client) Не удается найти способ доставки для {url_here} SearchRecords

+0

ли это Dotnet вебсервис? Это может означать, что вы должны явно указать soap_action. –

+0

Я не знаю, но позвольте мне попробовать эту вещь soap_action. Я отвечу, как только смогу. –

+0

Это похоже на проблему с конфигурацией, поэтому вы можете дважды проверить документы Savon, чтобы убедиться, что все это правильно. Кроме того, этот подобный вопрос может иметь ответ, если вы его еще не видели, в частности, убедитесь, что вы закончили URL с косой чертой: http://stackoverflow.com/q/7478406/398696 – d3vkit

ответ

0

канонический ответ:

  1. Скачать SoapUI.
  2. Создайте свой звонок в SoapUI.
  3. убедитесь, что он работает.
  4. Постройте тот же запрос, используя Savon.
  5. Ask Stackoverflow.
+0

Эй! Если вы прочитаете мой вопрос, тогда вы поймете, что я уже сделал все, что вы только что указали. Я могу построить вызов в SoapUI, но мне трудно перевести один и тот же запрос в ruby-код с помощью Savon. –

0

Вы должны сделать что-то вроде этого:

class SearchTours 
    extend Savon::Model 
    client wsdl: 'your url', 
    namespaces: { 
     ... 
     'xmlns:soapenv' => 'http://schemas.xmlsoap.org/soap/envelope/', 
     .... 
     ...#your namespacecs 
    } 

    operations :tour_details_full, :search_records 

    def self.tour_details_full 
    builder = Builder::XmlMarkup.new()#describe your request params 
    super message: builder 
    end 

    def self.search_records 
    builder = Builder::XmlMarkup.new()#describe your request params 
    super message: builder 
    end 

end 

#then you can call 
SearchTours.search_records #=> [] 

также вы можете это пользователь online tool проверить Ваш сервис WSDL или запрос

+0

этот онлайн-инструмент навсегда запрещает использование вами, если вы используете * Блок объявлений *! –

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

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