Re: How can I populate header values in SOAP document?

I was able to get the namespace abbreviations right by returning a hash
from on_simple_outbound instead of a string, letting the API handle the
conversion to XML.

A handler to add authentication parameters to the SOAP header.

class AutheticationHeaderHandler < SOAP::Header::SimpleHandler
@@HEADER_NAME = ‘WSAuthHeader’
def initialize(namespace, username, password)
super(XSD::QName.new(namespace, @@HEADER_NAME))
@user_element = XSD::QName.new(namespace, ‘User’)
@password_element = XSD::QName.new(namespace, ‘Password’)
@username, @password = username, password
end

 def on_simple_outbound
   # Seems to result in the creation of elements with the proper

namespace
# abbreviation, e.g. ‘ns1:UserJohnDoe</ns1:User>’
{@user_element => @username, @password_element => @password}
end
end

… As before …

ws.headerhandler << AutheticationHeaderHandler.new(namespace, user,
password)

Of course, this could be generalized to handle an arbitrary set of child
data, as in your example below.

Thanks again!

Brian H.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs