XML-RPC и Continuum от Python / Perl

Кто-нибудь имел успех с получением данных через Xml-rpc, используя Python или Perl...?

Я использую библиотеку Continumum.py:

#!/usr/bin/env python

from continuum import *

c = Continuum( "http://localhost:8080/continuum/xmlrpc" )

или же:

#!/usr/bin/perl

use Frontier::Client;

my $url = "http://dev.server.com:8080/continuum/xmlrpc";

my $client = RPC::XML::Client->new($url);

my $res = $client->send_request('system.listMethods');

print "   Response class = ".(ref $res)."\n";
print "   Response type = ".$res->type."\n";
print "   Response string = ".$res->as_string."\n";
print "   Response value = ".$res->value."\n";

дает: No such handler: system.listMethods

Кто-нибудь был лучше...?

2 ответа

То, что вы описываете, не является частью клиентской библиотеки - вопрос в том, реализует ли сервер эти методы.

Я являюсь автором модуля RPC:: XML Perl, и в классе сервера, который я предоставляю, я также предоставляю реализацию базового API "самоанализа", который стал своего рода полустандартным в области XML-RPC. Но даже в этом случае пользователи серверного класса могут не активировать API самоанализа.

Конечно, я не могу говорить с другими реализациями XML-RPC.

Да... с Perl.

Я использовал XML::RPC. На самом деле я написал CPAN-модуль WWW::FreshMeat::API, используя его для доступа к Freshmeats XML-RPC API, так что я знаю, что он работает хорошо!

Используя XML::RPC с Freshmeat, вызовы "system.*" Работают для меня....

use XML::RPC;
use Data::Dumper;

my $fm = XML::RPC->new( 'http://freshmeat.net/xmlrpc/' );

# need to put in your Freshmeat username/password here
my $session = $fm->call( 'login', { username => 'user', password => 'pass' });

my $x = $fm->call('system.listMethods');

say Dumper( $x );

Дает мне....

$VAR1 = [
        'system.listMethods',
        'system.methodHelp',
        'system.methodSignature',
        'system.describeMethods',
        'system.multiCall',
        'system.getCapabilities',
        'publish_release',
        'fetch_branch_list',
        'fetch_project_list',
        'fetch_available_licenses',
        'fetch_available_release_foci',
        'fetch_release',
        'login',
        'logout',
        'withdraw_release'
      ];

Надеюсь, это поможет.

Другие вопросы по тегам