Вызов HTTPS с помощью Savon

Я пытаюсь использовать службу SOAP, которая настаивает на HTTPS для передачи учетных данных их :login.

Используя Savon, я не вижу, как настроить HTTPS, и поэтому он не работает. Может ли кто-нибудь указать, как использовать Savon для совершения вызовов через HTTPS.

/Users/fizz/.rvm/gems/ruby-1.9.3-p194/gems/savon-1.1.0/lib/savon/soap/response.rb:107:in           `raise_errors': (soap:Server) Server was unable to process request. ---> Credentials can only be passed over secure connections (HTTPS) (Savon::SOAP::Fault)
from /Users/fizz/.rvm/gems/ruby-1.9.3-p194/gems/savon-1.1.0/lib/savon/soap/response.rb:18:in `initialize'
from /Users/fizz/.rvm/gems/ruby-1.9.3-p194/gems/savon-1.1.0/lib/savon/soap/request.rb:35:in `new'
from /Users/fizz/.rvm/gems/ruby-1.9.3-p194/gems/savon-1.1.0/lib/savon/soap/request.rb:35:in `response'
from /Users/fizz/.rvm/gems/ruby-1.9.3-p194/gems/savon-1.1.0/lib/savon/client.rb:84:in `request'
from ./soap.rb:14:in `<main>'

person David Lazar    schedule 16.08.2012    source источник


Ответы (1)


Savon использует HTTPI для HTTP-запросов. Вы должны иметь возможность предоставить учетные данные HTTP следующим образом:

client = Savon.client("http://v1.example.com?wsdl")

# HTTP basic auth
client.http.auth.basic("username", "password")

# HTTP digest auth
client.http.auth.digest("username", "password")
person rubiii    schedule 16.08.2012
comment
Проблема заключается не в предоставлении учетных данных, а в предоставлении учетных данных с помощью HTTPS. Ничто в настройке учетных данных клиента не требует использования HTTPS. - person David Lazar; 17.08.2012
comment
Вы передаете местоположение конечной точки WSDL или SOAP в качестве безопасного URL-адреса (например, https://)? Кроме того, какой адаптер HTTPI вы используете? Поскольку для этого требуется немного больше отладки, вы можете вместо этого отправить сообщение в список рассылки. - person rubiii; 20.08.2012