-
Ping par XML-RPC
Par Godefroy dans Développement le 13 Juillet 2007 à 23:43Désormais, lorsqu'on poste un nouvel article sur son eklablog, si le blog n'est pas protégé par un mot de passe, un ping est envoyé aux principaux serveurs RPC. A quoi ça sert ? A avertir les moteurs de recherche et annuaires tels que Technorati.com ou Weblogs.com que vous avez publié une nouveauté sur votre blog. Votre blog sera alors placé dans la file d'attente et il sera examiné au plus vite pour être actualisé dans les annuaires.
Passons maintenant au côté technique. Un simple fichier XML envoyé par requête HTTP aux serveurs RPC suffit. J'ai choisi d'envoyer les pings à rpc.pingomatic.com, car ce serveur envoie le ping aux principaux serveux RPC (http://pingomatic.com/ pour plus d'infos). C'est très simple vous allez voir

Voilà un exemple de requête XML-RPC :
POST / HTTP/1.0
User-Agent: EklaBlog
Host: rpc.pingomatic.com
Content-Type: text/xml
Content-length: 447
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>weblogUpdates.extendedPing</methodName>
<params>
<param>
<value>Blog de Skreo</value>
</param>
<param>
<value>http://www.skreo.net</value>
</param>
<param>
<value>http://www.skreo.net/article-2904-22773-ping-par-xml-rpc.html</value>
</param>
<param>
<value>http://www.skreo.net/rss/</value>
</param>
</params>
</methodCall>Après avoir construit le fichier XML, il ne reste plus qu'à l'envoyer par fsockopen au serveur

Bon allez je suis gentil je vous fais un ptit exemple
Exemple d'envoi d'un ping à Pingomatic :
<?php
$content = '<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>weblogUpdates.extendedPing</methodName>
<params>
<param>
<value>Blog de Skreo</value>
</param>
<param>
<value>http://www.skreo.net</value>
</param>
<param>
<value>http://www.skreo.net/article-2904-22773-ping-par-xml-rpc.html</value>
</param>
<param>
<value>http://www.skreo.net/rss/</value>
</param>
</params>
</methodCall>';
$headers = 'POST / HTTP/1.0
User-Agent: EklaBlog
Host: rpc.pingomatic.com
Content-Type: text/xml
Content-length: '.strlen($content);
$request = $headers."\r\n\r\n".$content;
$fs = @fsockopen('rpc.pingomatic.com', 80);
if($fs){
fwrite($fs, $request);
}
?>
Tags : param, value, rpc, xml, blog
-
Commentaires
1divarvel
Samedi 14 Juillet 2007 à 02:09Pas mal pas mal ! C'est bin pratique ça.
Bravo Gentelman,
c'est vraiment très gentil3Can yonVendredi 18 Février 2011 à 23:37strlen () avec UTF-8, ca le fait pas trop, non ?

Suivre le flux RSS des commentaires de cet article
Ajouter un commentaire
