Beim Savon-Aufruf können keine SOAP-Header-Parameter festgelegt werden

Ich verwende Savon 2.2 für SOAP-Aufrufe.

Initialisieren:

  client = Savon.client(
  wsdl: SOAP_WSDL,
  endpoint: SOAP_URL)

Ich kann einen SOAP-Aufruf wie folgt tätigen und es funktioniert einwandfrei:

resp =  client.call(:login, message: { username: SOAP_USER, password: SOAP_PASSWORD })

Jetzt muss ich einen weiteren Aufruf durchführen, für den einige Parameter im SOAP-Header festgelegt werden müssen. Aus der Dokumentation auf savorb.com habe ich herausgefunden, dass ich die Anforderungsmethode verwenden sollte:

 response = client.request :get_user_info do
    soap.header = { :session_id => sid }
 end 

Ich erhalte jedoch die Fehlermeldung, dass die Anforderungsmethode nicht vorhanden ist:

undefined method `request' for #<Savon::Client:0x007f1560f80490>

Habe ich eine andere Version von Savon oder was? Ich habe versucht, "call" anstelle von "request" zu verwenden, aber dann erhalte ich:

ArgumentError - wrong number of arguments (1 for 2):
gem) savon-2.2.0/lib/savon/options.rb:35:in `method_missing'
(gem) savon-2.2.0/lib/savon/block_interface.rb:20:in `method_missing'
app/models/tool.rb:23:in `block in doUpload'

Antworten auf die Frage(3)

Ihre Antwort auf die Frage