[propget] HRESULT actor([out, retval] BSTR * actorURI);
[propput] HRESULT actor([in] BSTR actorURI);
All SOAP Nodes do their processing in the context of a current role, typically this is the default role, and you don't need to set it. However if you are using intermediaries, then the intermediaries act in the context of a different role. The Actor URI allows you to target a particular header at a specific role.
///todo: discuss the possible return values
dim e,t,n
set e = CreateObject("pocketSOAP.Envelope.2")
' call the echoString method
e.setMethod "echoString", "http://soapinterop.org/"
e.Parameters.Create "InputString" , "hello world"
' but use an intermediary to log the request/response
' the intermediary acts in the role of 'http://schemas.pocketsoap.com/logi/2001/01/'
const LOG_NS = "http://schemas.pocketsoap.com/logi/2001/01/"
set n = e.Headers.Create ("Log", "", LOG_NS)
n.actor = LOG_NS
n.root = true
n.nodes.create "NextHop", "http://soap.4s4c.com/ilab/soap.asp", LOG_NS
wscript.echo e.serialize
set t = CreateObject("pocketSOAP.HTTPTransport.2")
t.SOAPAction="http://soapinterop.org/"
' send the request to the intermediary
t.send "http://soap.4s4c.com/log.ashx", e.serialize
e.parse t
' print the results of the echoString call
wscript.echo e.parameters.item(0).value
Copyright © Simon Fell, 2000-2004. All rights reserved.