Extends "METHODS" in XML::Compile::Transport.
Constructors
Extends "Constructors" in XML::Compile::Transport.
XML::Compile::Transport::SOAPHTTP->new(%options)
Create a SOAP-over-HTTP handler, implemented as a wrapper around LWP::UserAgent.
If you need to change UserAgent settings (for instance at runtime), you can always directly access
the internal "LWP::UserAgent" object via userAgent().
Warning: The "ssl_opts", "keep_alive" and "timeout" options are only used when an default internal
"LWP::UserAgent" is created; this is only once in a program. Later instantiations of this ::SOAPHTTP
will share that default agent, even though these passed parameters have different parameters. If
that is not what you want, then pass your own "user_agent" object to the constructor to avoid the use
of the default.
-Option --Defined in --Default
address XML::Compile::Transport 'http://localhost'
charset XML::Compile::Transport 'UTF-8'
keep_alive <true>
ssl_opts <undef>
timeout 180
user_agent <created when needed>
address => URI|ARRAY-of-URI
charset => STRING
keep_alive => BOOLEAN
When connection can be re-used.
ssl_opts => HASH
[3.28] In case you need to use https, but are not interested in checking (or even configuring)
certificates, you may want to pass "verify_hostname => 0".
timeout => SECONDS
The maximum time for a single connection before the client will close it. The server may close it
earlier. Do not set the timeout too long, because you want objects to be cleaned-up.
user_agent => LWP::UserAgent object
If you do not pass your own user agent, a default will be created for you.
WSDL11
Extends "WSDL11" in XML::Compile::Transport.
$obj->wsdl11Init($wsdl, $args)
XML::Compile::Transport::SOAPHTTP->wsdl11Init($wsdl, $args)
Inherited, see "WSDL11" in XML::Compile::SOAP::Extension
SOAP11
Extends "SOAP11" in XML::Compile::Transport.
$obj->soap11ClientWrapper($operation, $call, $args)
Inherited, see "SOAP11" in XML::Compile::SOAP::Extension
$obj->soap11HandlerWrapper($operation, $callback, $args)
Inherited, see "SOAP11" in XML::Compile::SOAP::Extension
$obj->soap11OperationInit($operation, $args)
XML::Compile::Transport::SOAPHTTP->soap11OperationInit($operation, $args)
Inherited, see "SOAP11" in XML::Compile::SOAP::Extension
SOAP12
Extends "SOAP12" in XML::Compile::Transport.
$obj->soap12ClientWrapper($operation, $call, $args)
Inherited, see "SOAP12" in XML::Compile::SOAP::Extension
$obj->soap12HandlerWrapper($operation, $callback, $args)
Inherited, see "SOAP12" in XML::Compile::SOAP::Extension
$obj->soap12OperationInit($operation, $args)
XML::Compile::Transport::SOAPHTTP->soap12OperationInit($operation, $args)
Inherited, see "SOAP12" in XML::Compile::SOAP::Extension
Accessors
Extends "Accessors" in XML::Compile::Transport.
$obj->address()
Inherited, see "Accessors" in XML::Compile::Transport
$obj->addresses()
Inherited, see "Accessors" in XML::Compile::Transport
$obj->charset()
Inherited, see "Accessors" in XML::Compile::Transport
$obj->defaultUserAgent()
XML::Compile::Transport::SOAPHTTP->defaultUserAgent()
[3.07] Returns the used LWP::UserAgent, available after the compilation of the SOAP call(s).
$obj->userAgent( [$agent|<undef, %options>] )
Returns the User Agent which will be used. You may change the configuration of the $agent (the
returned LWP::UserAgent object) or provide one yourself. See also new(user_agent).
Changes to the agent configuration can be made before or after the compilation, or even inbetween
SOAP calls.
Handlers
Extends "Handlers" in XML::Compile::Transport.
$obj->compileClient(%options)
Compile an HTTP client handler. Returned is a subroutine which is called with a text represenation
of the XML request, or an XML::LibXML tree. In SCALAR context, an XML::LibXML parsed tree of the
answer message is returned. In LIST context, that answer is followed by a HASH which contains trace
information.
-Option --Defined in --Default
action ''
header <created>
hook XML::Compile::Transport <undef>
kind 'request-response'
method 'POST'
mime_type <depends on soap version>
mpost_id 42
soap 'SOAP11'
xml_format XML::Compile::Transport 0
action => URI
header => HTTP::Headers object
Versions of XML::Compile, XML::Compile::SOAP, and LWP will be added to simplify bug reports.
hook => CODE
kind => DIRECTION
What kind of interactie, based on the four types defined by WSDL(1): "notification-operation"
(server initiated, no answer required), "one-way" (client initiated, no answer required),
"request-response" (client initiated, the usual in both directions), "solicit-response" (server
initiated "challenge").
method => 'POST'|'M-POST'
With "POST", you get the standard HTTP exchange. The "M-POST" is implements the (Microsoft) HTTP
Extension Framework. Some servers accept both, other require a specific request.
mime_type => STRING
mpost_id => INTEGER
With method "M-POST", the header extension fields require (any) number to be grouped.
soap => 'SOAP11'|'SOAP12'|OBJECT
xml_format => 0|1|2
example: create a client
my $trans = XML::Compile::Transport::SOAPHTTP->new
( address => 'http://www.stockquoteserver.com/StockQuote'
);
my $call = $trans->compileClient
( action => 'http://example.com/GetLastTradePrice'
);
# $request and $answer are XML::LibXML trees!
# see XML::Compile::SOAP::Client::compileClient() for wrapper which
# converts from and to Perl data structures.
my ($answer, $trace) = $call->($request);
my $answer = $call->($request); # drop $trace info immediately
$obj->headerAddVersions($header)
XML::Compile::Transport::SOAPHTTP->headerAddVersions($header)
Adds some lines about module versions, which may help debugging or error reports. This is called
when a new client or server is being created.