Protocol::XMLRPC::Client - Simple XML-RPC client
my $xmlrpc = Protocol::XMLRPC::Client->new( http_req_cb => sub { ... $cb->(..); } ); $xmlrpc->call( 'http://example.com/xmlrpc' => 'plus' => [1, 2] => sub { my ($self, $method_response) = @_; print $method_response->param->value, "\n"; }, sub { print "internal error\n"; } );
Protocol::XMLRPC::Client is a simple XML-RPC client. You provide callback subroutine for posting method requests. LWP, AnyEvent::HTTP etc can be used for this purpose.
http_req_cb
my $xmlrpc = Protocol::XMLRPC::Client->new( http_req_cb => sub { my ($self, $url, $method, $headers, $body, $cb) = @_; ... $cb->($self, $status, $headers, $body);
A callback for sending request to the xmlrpc server. Don't forget that User-Agent and Host headers are required by XML-RPC specification. Default values are provided, but you are advised to change them.
Request callback is called with:
self Protocol::XMLRPC::Client instance
url server url (for example 'http://example.com/xmlrpc')
method request method
headers request headers hash reference
body request body to send. Holds Protocol::XMLRPC::MethodCall string representation.
cb callback that must be called after response was received
error_cb callback that is called on error (optional)
Response callback must be called with:
status response status (200, 404 etc)
headers response headers hash reference
body response body
new
my $xmlrpc = Protocol::XMLRPC::Client->new(http_req_cb => sub { ... });
Creates Protocol::XMLRPC instance. Argument http_req_cb is required.
call
$xmlrpc->call( 'http://example.com/xmlrpc' => 'plus' => [1, 2] => sub { my ($self, $method_response) = @_; ... } );
Creates Protocol::XMLRPC::MethodCall object with provided parameters and calls http_req_cb with url and body. Upon response parses and created Protocol::XMLRPC::MethodResponse object and calls provided callback.
Parameter are optional. But must be provided as an array reference. Parameters types are guessed (more about that in Protocol::XMLRPC::ValueFactory).
To install Protocol::XMLRPC, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Protocol::XMLRPC
CPAN shell
perl -MCPAN -e shell install Protocol::XMLRPC
For more information on module installation, please visit the detailed CPAN module installation guide.