NAME
XML::RPC -- Pure Perl implementation for an XML-RPC client and server.
SYNOPSIS
make a call to a XML-RPC server:
my $xmlrpc = XML::RPC->new('http://betty.userland.com/RPC2');
my $result = $xmlrpc->call( 'examples.getStateStruct', { state1 => 12, state2 => 28 } );
create a XML-RPC service:
use XML::RPC;
use CGI;
my $q = new CGI;
my $xmlrpc = XML::RPC->new();
my $xml = $q->param('POSTDATA');
print $q->header( -type => 'text/xml', -charset => 'UTF-8' );
print $xmlrpc->receive( $xml, \&handler );
sub handler {
my ( $methodname, @params ) = @_;
return { you_called => $methodname, with_params => \@params };
}
DESCRIPTION
XML::RPC module provides simple Pure Perl methods for XML-RPC communication. It's goals are simplicity and flexibility. XML::RPC uses XML::TreePP for parsing.
CONSTRUCTOR AND OPTIONS
$xmlrpc = XML::RPC->new();
This constructor method returns a new XML::RPC object. Usable for XML-RPC servers.
$xmlrpc = XML::RPC->new( 'http://betty.userland.com/RPC2', %options );
Its first argument is the full URL for your server. The second argument is for options passing to XML::TreePP, for example: output_encoding => 'ISO-8859-1' (default is UTF-8).
METHODS
$xmlrpc->call( 'method_name', @arguments );
This method calls the provides XML-RPC server's method_name with @arguments. It will return the server method's response.
$xmlrpc->receive( $xml, \&handler );
This parses an incoming XML-RPC methodCall and call the \&handler subref with parameters: $methodName and @parameters.
ERROR HANDLING
To provide an error response you can simply die() in the \&handler function. Also you can set the $XML::RPC::faultCode variable to a value just before dieing.
PROXY SUPPORT
Default XML::RPC will try to use LWP::Useragent for requests, you can set the environment variable: CGI_HTTP_PROXY to set a proxy.
LIMITATIONS
XML::RPC will not create "bool", "dateTime.iso8601" or "base64" types. They will be parsed as "int" or "string".
AUTHOR
Niek Albers, http://www.daansystems.com/
COPYRIGHT AND LICENSE
Copyright (c) 2007 Niek Albers. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.