Xmlrpc

Webserviceexample

About

xmlrpc is another name for soap.

Example with the xmlrpc api of wordpress

The code

include("/xmlrpc-2.2.2/lib/xmlrpc.inc");
        
  	// YOU MUST PLACE YOUR BLOGGER API KEY HERE
$XmlAppId = new xmlrpcval('', "string");
$BlogId = '';
$XmlBlogId = new xmlrpcval($BlogId, "string");
$UserLogin = 'userlogin';
$XmlUserLogin = new xmlrpcval($UserLogin, "string");
$UserPass = 'userpassword';
$XmlUserPass = new xmlrpcval($UserPass, "string");
$Content = "<title>Title!</title><category>NewCategory</category>My text blabla";
$XmlContent = new xmlrpcval($Content, "string");
$Publish = true;
$XMLPublish = new xmlrpcval($Publish, "boolean");

$Message = new xmlrpcmsg("blogger.newPost", array($XmlAppId, $XmlBlogId, $XmlUserLogin, $XmlUserPass, $XmlContent, $XmlPublish));

// You can try with the hello function 
//$Message = new xmlrpcmsg("demo.sayHello", array($XmlBlogid, $XmlUserLogin, $XmlUserPass, $XmlContent, $XmlPublish));

print "<pre>Sending the following request:\n\n" . htmlentities($Message->serialize()) . "\n\nDebug info of server data follows...\n\n";

$Client = new xmlrpc_client("/weblog/xmlrpc.php", "gnico", 80);
$Client->setDebug(1);
$Reponse =& $Client->send($Message);
if (!$Reponse->faultCode()) {
    $v = $Reponse->value();
    print "</pre><br/>Reponse is "
        . htmlspecialchars($v->scalarval()) . "<br/>";
    // print "<HR>I got this value back<BR><PRE>" .
    //  htmlentities($Message->serialize()). "</PRE><HR>\n";
} else {
    print "An error occurred: ";
    print "Code: " . htmlspecialchars($Reponse->faultCode())
        . " Reason: '" . htmlspecialchars($Reponse->faultString()) . "'</pre><br/>";
}

The message

<?xml version="1.0"?>
<methodCall>
    <methodName>blogger.newPost</methodName>
    <params>
        <param>
            <value>
                <string></string>
            </value>
        </param>
        <param>
            <value>
                <string></string>
            </value>
        </param>
        <param>
            <value>
                <string>UserLogin</string>
            </value>
        </param>
        <param>
            <value>
                <string>UserPassword</string>
            </value>
        </param>
        <param>
            <value>
                <string>&lt;title&gt;Title!&lt;/title&gt;&lt;category&gt;NewCategory&lt;/category&gt;My text</string>
            </value>
        </param>
    </params>
</methodCall>

Response

The number of the new post

<?xml version="1.0"?>
<methodResponse>
  <params>
    <param>
      <value>
        <int>131</int>
      </value>
    </param>
  </params>
</methodResponse>

Reponse is 131

Support

An error occurred: Code: -32601 Reason: 'server error. requested method blogger_newPost does not exist.'

In the xmlrpc server, you can see the name to call in the function (on the left of the code below) :

'wp.getUsersBlogs'		=> 'this:wp_getUsersBlogs',
'wp.getPage'			=> 'this:wp_getPage',
'wp.getPages'			=> 'this:wp_getPages',
'wp.newPage'			=> 'this:wp_newPage',
'wp.deletePage'			=> 'this:wp_deletePage',
'wp.editPage'			=> 'this:wp_editPage',
'wp.getPageList'		=> 'this:wp_getPageList',
'wp.getAuthors'			=> 'this:wp_getAuthors',
'wp.getCategories'		=> 'this:mw_getCategories',		// Alias
'wp.getTags'			=> 'this:wp_getTags',
'wp.newCategory'		=> 'this:wp_newCategory',
'wp.deleteCategory'		=> 'this:wp_deleteCategory',
'wp.suggestCategories'	=> 'this:wp_suggestCategories',
'wp.uploadFile'			=> 'this:mw_newMediaObject',	// Alias
'wp.getCommentCount'	=> 'this:wp_getCommentCount',
'wp.getPostStatusList'	=> 'this:wp_getPostStatusList',
'wp.getPageStatusList'	=> 'this:wp_getPageStatusList',
'wp.getPageTemplates'	=> 'this:wp_getPageTemplates',
'wp.getOptions'			=> 'this:wp_getOptions',
'wp.setOptions'			=> 'this:wp_setOptions',
'wp.getComment'			=> 'this:wp_getComment',
'wp.getComments'		=> 'this:wp_getComments',
'wp.deleteComment'		=> 'this:wp_deleteComment',
'wp.editComment'		=> 'this:wp_editComment',
'wp.newComment'			=> 'this:wp_newComment',
'wp.getCommentStatusList' => 'this:wp_getCommentStatusList',
// Blogger API
'blogger.getUsersBlogs' => 'this:blogger_getUsersBlogs',
'blogger.getUserInfo' => 'this:blogger_getUserInfo',
'blogger.getPost' => 'this:blogger_getPost',
'blogger.getRecentPosts' => 'this:blogger_getRecentPosts',
'blogger.getTemplate' => 'this:blogger_getTemplate',
'blogger.setTemplate' => 'this:blogger_setTemplate',
'blogger.newPost' => 'this:blogger_newPost',
'blogger.editPost' => 'this:blogger_editPost',
'blogger.deletePost' => 'this:blogger_deletePost',
// MetaWeblog API (with MT extensions to structs)
'metaWeblog.newPost' => 'this:mw_newPost',
'metaWeblog.editPost' => 'this:mw_editPost',
'metaWeblog.getPost' => 'this:mw_getPost',
'metaWeblog.getRecentPosts' => 'this:mw_getRecentPosts',
'metaWeblog.getCategories' => 'this:mw_getCategories',
'metaWeblog.newMediaObject' => 'this:mw_newMediaObject',
// MetaWeblog API aliases for Blogger API
// see http://www.xmlrpc.com/stories/storyReader$2460
'metaWeblog.deletePost' => 'this:blogger_deletePost',
'metaWeblog.getTemplate' => 'this:blogger_getTemplate',
'metaWeblog.setTemplate' => 'this:blogger_setTemplate',
'metaWeblog.getUsersBlogs' => 'this:blogger_getUsersBlogs',
// MovableType API
'mt.getCategoryList' => 'this:mt_getCategoryList',
'mt.getRecentPostTitles' => 'this:mt_getRecentPostTitles',
'mt.getPostCategories' => 'this:mt_getPostCategories',
'mt.setPostCategories' => 'this:mt_setPostCategories',
'mt.supportedMethods' => 'this:mt_supportedMethods',
'mt.supportedTextFilters' => 'this:mt_supportedTextFilters',
'mt.getTrackbackPings' => 'this:mt_getTrackbackPings',
'mt.publishPost' => 'this:mt_publishPost',
// PingBack
'pingback.ping' => 'this:pingback_ping',
'pingback.extensions.getPingbacks' => 'this:pingback_extensions_getPingbacks',
'demo.sayHello' => 'this:sayHello',
'demo.addTwoNumbers' => 'this:addTwoNumbers'





Discover More
Process States
Network - Remote procedure call (RPC)

RPC is a process communication method (IPC). An RPC is initiated by the client, which sends a request message to a known remote server to execute a specified procedure with supplied parameters. The...
Pingback

pingback is a feature that permits to notify back automatically a website owner when an article is talking another article. In the original article html document, the website owner advertise the...
Process States
Process - Inter Process Communication (IPC)

An Inter Process Communication (IPC) describes the fact that two or more processes exchange information. IPC is used not just for communication between processes on the same system, but also on different...
Webserviceexample
Web Service - Simple Object Access Protocol (SOAP)

SOAP (Simple Object Access Protocol) is a Web Services protocol for exchanging: Extensible Markup Language (XML) via the following Application Layer protocols: Remote Procedure Call (RPC) and HTTP...



Share this page:
Follow us:
Task Runner