A Perl implementation of the XML-RPC specification
Perl Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
etc Make the build reproducible by dropping timestamps in make_method output Jun 4, 2015
ex Added cover_db (generated by Devel::Cover) to svn:ignore, and deleted… Apr 3, 2008
lib
methods
t
xt
.gitignore
ChangeLog
ChangeLog.xml
MANIFEST
Makefile.PL
README
README.apache2
ToDo

README

RPC::XML - An implementation of XML-RPC

Version: 0.80

WHAT IS IT

The RPC::XML package is an implementation of XML-RPC. The module provides
classes for sample client and server implementations, a server designed as an
Apache location-handler, and a suite of data-manipulation classes that are
used by them.


USING RPC::XML

There are not any pre-packaged executables in this distribution (except for a
utility tool). Client usage will usually be along the lines of:

    use RPC::XML::Client;
    ...
    my $client = RPC::XML::Client->new(
        'http://www.oreillynet.com/meerkat/xml-rpc/server.php' );
    my $req = RPC::XML::request->new('meerkat.getChannelsBySubstring', 'perl');
    my $res = $client->send_request($req);
    # This returns an object of the RPC::XML::response class. This double-call
    # of value() first gets a RPC::XML::* data object from the response, then
    # the actual data from it:
    my $value = $res->value->value;

Running a simple server is not much more involved:

    use RPC::XML::Server;
    ...
    my $srv = RPC::XML::Server->new( host => 'localhost',
                                     port => 9000 );
    # You would then use $srv->add_method to add some remotely-callable code
    ...
    $srv->accept_loop; # Stays in an accept/connect loop


BUILDING/INSTALLING

This package is set up to configure and build like a typical Perl extension.
To build:

        perl Makefile.PL
        make && make test

If RPC::XML passes all tests, then:

        make install

You may need super-user access to install.


PROBLEMS/BUG REPORTS

Please send any reports of problems or bugs to rjray@blackperl.com


SEE ALSO

XML-RPC:          http://www.xmlrpc.com/spec
The Artistic 2.0: http://www.opensource.org/licenses/artistic-license-2.0.php
The LGPL 2.1:     http://www.opensource.org/licenses/lgpl-2.1.php


CHANGES

* etc/make_method
Make the build reproducible by dropping timestamps in
make_method output. (Niko Tyni)

* t/40_server.t
* t/40_server_xmllibxml.t
* t/50_client.t
Fixes for test problems with Strawberry Perl.

* lib/RPC/XML/Client.pm
Fix leak caused by failing to free Expat parser. We don't want
to return from the method until the parser's been freed. We
therefore need to call $parser->release() before the return
statements caused by request failures. (Tom Grimwood-Taylor)

* lib/RPC/XML/Server.pm
One socket-opt change, one typo corrected.

* lib/RPC/XML.pm
Applied patch for numeric regexes and critic cleanup. Addresses
GitHub pull request #10 and RT #111636.

* t/60_net_server.t
RT #99578: Work-around fix for Net::Server+IO::Socket::IP. If a
system's IPv6 declaration of localhost was before the IPv4
declaration in the hosts file, this test would fail.