XML-RPC fournit un service WEB permettant d’appeler une fonction sur un serveur distant à partir de n’importe quel système d’exploitation et de langage de programmation.
Le protocole XML-RPC permet de transmettre, assez facilement, n’importe quel type d’informations, d’exécuter des programmes à distance et de recevoir des structures de données complexes. De la documentation et des exemples d’implémentation dans différents langes de programmations sont disponibles sur la page XML-RPC HowTo.
XML-RPC est entre autre utilisé sur des plateformes type WordPress offrant ainsi la possibilité de publier des articles à partir d’un éditeur externe. Par exemple vous pouvez créer un blog sur WordPress.com et publier des articles via un programme PHP depuis un autre serveur. Jérémy Allard détail un exemple pratique dans l’article : WordPress XmlRpc – Comment Schéduler des Articles ?
Cependant une petite question reste en suspens. Comment savoir si le protocole XML-RPC est activé. Eh bien rien de plus simple avec le script PHP, détaillé ci-dessous, qui permet de vérifier si le protocole XML-RPC est opérationnel sur le serveur où est hébergé votre blog.
Pour utiliser ce script rien de compliqué. Il suffit de renseigner les 3 variables $xmlrpcServer, $xmlrpcUser & $xmlrpcPasswd.
Si la connexion au serveur XML-RPC est opérationnel, il est alors affiché les informations utilisateur suivantes :
- nickname (pseudo)
- userid (correspond à l’ID utilisateur/blog)
- url (adresse du blog)
- lastname (vide)
- firstname (vide)
- service xml-rpc (xmlrpc-ixr)
Rem : Ce script utilise la librairie Incutio XML-RPC.
Exemple de test de connexion XML-RPC en PHP
< ?php
//
// Description : test-XMLRPC.php
// Version : 1.0.0
// Auteur : lemoussel
// Licence : Creative Commons BY-NC-SA 2.0
// Script url : http://www.seoblack-inside.com/
//
set_time_limit(0);
define('ABSPATH', $_SERVER['DOCUMENT_ROOT']);
require_once(ABSPATH . 'IXR_Library.php');
function testConnectRPC($RPCserver, $username, $password) {
$paramsRPC = array('', $username, $password);
if(!function_exists("xmlrpc_encode_request"))
{
$clientRPC = new IXR_Client($RPCserver);
if (! $clientRPC->query('blogger.getUserInfo', $paramsRPC))
die("Erreur IXR XML-RPC - " . $clientRPC->getErrorCode() . ' : '.$clientRPC->getErrorMessage());
$responseRPC = $clientRPC->getResponse();
$responseRPC['connexion'] = 'xmlrpc-ixr';
}
else
{
$mreq = xmlrpc_encode_request('blogger.getUserInfo', $paramsRPC);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POSTFIELDS, $mreq);
curl_setopt($ch, CURLOPT_URL, $RPCserver);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml"));
$XMLresponseRPC = curl_exec($ch);
curl_close($ch);
$responseRPC = xmlrpc_decode($XMLresponseRPC);
if ($responseRPC && xmlrpc_is_fault($responseRPC))
die("Erreur XML-RPC: $responseRPC[faultString] ($responseRPC[faultCode])");
$responseRPC['connexion'] = 'xmlrpc-epi';
}
return $responseRPC;
}
// URL du serveur XML-RPC
$xmlrpcServer = 'http://SERVEUR/xmlrpc.php';
// Identifiant
$xmlrpcUser = 'USER';
// Mot de Passe
$xmlrpcPasswd = 'PWD';
$response = testConnectRPC($xmlrpcServer, $xmlrpcUser, $xmlrpcPasswd);
echo 'Test de connexion XML RPC ';
echo '------------------------- ';
echo '';
echo 'server: ' . $xmlrpcServer . '';
echo '';
if (isset($response))
foreach ($response as $key => $value) echo "$key: $value ";
?>
Mots clés recherchés :
- script php seo
- activer protocole xml rpc
- scripts xml teste
- test rpc xml websevice
- tester mot de passe en ligne par script php
- text de connexion
- voir si mon serveur xmlrpc est active
- xml rpc php
- xml rpc wordpress php
- xml-rpc en php
No related posts.

Merci pour la citation chef …
Sur wordpress un truc tout con que tu peux faire sans avoir besoin de identifiants, c’est de demander la methode list.method il me semble.
Si le XMLRPC est activé tu recois la liste des méthodes accessible … Sinon il t’es retourné que le RPC n’est pas dispo.
C’est plus sympa pour tester d’autres possibilités … Genre: “mon concurrent a-t-il activé le XMLRPC ? Puis-je me permettre quelques requêtes pour le ralentir ?”
Ca me rappelle quelques souvenirs, n’est-ce pas
Merci pour ce bout de script, il me manquait cette partie à ma prog pour poster en xml