From: Henning Panke Date: 2007-06-22T20:10:09+09:00 Subject: Howto add automatically a soap header in soap4r? Hi all, I must access a webservices that expect the SOAP action as a soap header. I want to add this soap header automatically but I dont know where to hook in. My actual solution is to create a header and remove it after consuming. The code looks like this: require 'SystemDriver.rb' require 'soap/header/simplehandler' # define the action soap header class ActionHandler < SOAP::Header::SimpleHandler HeaderName = XSD::QName.new('http://schemas.xmlsoap.org/ws/2004/08/addressing/','Action') @m_action def initialize(action) super(HeaderName) @m_action = action end def on_simple_outbound @m_action end end # create the connection / interface endpoint_url = "http://localhost:1500" obj = Public.new( endpoint_url ) # enable debug output obj.wiredump_dev = STDERR if $DEBUG ns = 'http://mynamespace.com/my/path' # getIdentity # create action soap header actionHandler = ActionHandler.new( ns + '/getIdentity' ) # add action soap header obj.headerhandler.add( actionHandler ) # do the request emptyRequest = nil puts 'getIdentity: ' + obj.getIdentity(emptyRequest).identityString puts '' # remove action soap header for reusing the connection / interface obj.headerhandler.delete( actionHandler )