Здравствуйте, я тестирую веб-службы, и я пытаюсь написать клиент, используя SAVON с моим wsdl. У меня есть одна доступная операция с именем log_process, и я пытаюсь получить к ней доступ, но получаю ошибки. У меня есть аналогичный скрипт, написанный на PHP, и он работает нормально. Я попыталсяRuby SOAP Client, использующий SAVON, не работает, тогда как работает клиент PHP SOAP
require 'net/http'
require "uri"
require 'savon'
client = Savon.client(wsdl: "http://abc.com/projects/shared/abc.wsdl")
@a=client.operations
puts @a
ary={0 =>"art", 1 =>"bac", 2 =>"arr"}
@result = client.call(:log_process, message:{0 =>"asdf", 1 =>"qwer", 2 =>"arr"})
puts @result
и получить следующее сообщение об ошибке
raise_soap_and_http_errors ': (SOAP-ENV: Client) Bad Request (Савон :: SoapFault)
Мой PHP работает решение выглядит например,
$ result = $ client-> log_process (array (0 => $ user_name, 1 => $ user_pwd, 2 => $ display_type));
любая идея, каков будет рубин, эквивалентный этому, или я вызываю операцию правильно?
Почему вы называете 'log_process' на результат' операций() '? Я предполагаю, что вы хотите 'client.log_process'. –
попробовал это, а также попытался @result = client.call (: log_process, message: {0 => "asdf", 1 => "asg", 2 => "arr"}) –
Обновлен вопрос Теперь я получаю выше ошибка, заявляющая raise_soap_and_http_errors! ': (SOAP-ENV: Client) Плохой запрос (Savon :: SOAPFault) –