Mark's Place

A place for Mark's murmuring, blah, blah, blah, ...

Mark's Place
Watch Timeline

用 PHP 來測試 LifeType 的 xmlrpc.php

Mark Wu 發表於 2007/11/11 15:40 · 靜態連結網址

PHP 不僅沒有 iteractive shell,甚至在 xmlrpc 上的支援也是亂七八糟的。亂七八糟,不是說 PHP 對 XMLRPC 支援的亂七八糟,而是在 XMLRPC 的支援上有太多的選擇,有官方的 XMLRPC,有 PEAR 的 XML_RPC,還有 SourceForge 上的 XML-RPC for PHP,實在令人無所適從。甚至,LifeType 本身用的是 IXR XML_RPC,根本還不再上述的程式中。

這裡的例子是用 PEAR 的 XML_RPC,所以必須透過 PEAR 安裝 XML_RPC 的支援。另外,也因為沒有 interactive shell,所以必須把測試檔案放在 web server 中測試,程式碼如下:

<?php
    include_once( "XML/RPC.php" );
    $client = new XML_RPC_Client( '/1.2/xmlrpc.php', 'lifetype', 80 );
    $params = new XML_RPC_Value( array( new XML_RPC_Value( 1, 'int' ),
                                        new XML_RPC_Value( 'admin', 'string' ),
                                        new XML_RPC_Value( 'passwd', 'string' ),
                                        new XML_RPC_Value( 5, 'int' )
                                      ), "array" );

    $msg = new XML_RPC_Message( 'metaWeblog.getRecentPosts', array( $params ) );
    $response = $client->send( $msg );
    print_r( $response );
?>

這是結果:

XML_RPC_Response Object ( [xv] => XML_RPC_Value Object ( [me] => Array ( [array] => Array ( [0] => XML_RPC_Value Object ( [me] => Array ( [struct] => Array ( [userid] => XML_RPC_Value Object ( [me] => Array ( [string] => 1 ) [mytype] => 1 ) [dateCreated] => XML_RPC_Value Object ( [me] => Array ( [dateTime.iso8601] => 20071109T11:19:10 ) [mytype] => 1 ) [title] => XML_RPC_Value Object ( [me] => Array ( [string] => 恭喜! ) [mytype] => 1 ) [description] => XML_RPC_Value Object ( [me] => Array ( [string] => 如果你可以看到這篇文章,表示註冊過程已經順利完成。現在你可以開始blogging了! ) [mytype] => 1 ) [postid] => XML_RPC_Value Object ( [me] => Array ( [string] => 1 ) [mytype] => 1 ) [link] => XML_RPC_Value Object ( [me] => Array ( [string] => http://lifetype/1.2/index.php?op=ViewArticle&amp;articleId=1&blogId=1 ) [mytype] => 1 ) [permaLink] => XML_RPC_Value Object ( [me] => Array ( [string] => http://lifetype/1.2/index.php?op=ViewArticle&amp;articleId=1&blogId=1 ) [mytype] => 1 ) [categories] => XML_RPC_Value Object ( [me] => Array ( [array] => Array ( [0] => XML_RPC_Value Object ( [me] => Array ( [string] => General ) [mytype] => 1 ) ) ) [mytype] => 2 ) [mt_text_more] => XML_RPC_Value Object ( [me] => Array ( [string] => ) [mytype] => 1 ) [mt_allow_comments] => XML_RPC_Value Object ( [me] => Array ( [boolean] => 0 ) [mytype] => 1 ) ) ) [mytype] => 3 ) ) ) [mytype] => 2 ) [fn] => [fs] => [hdrs] => Array ( [0] => T ) )


重點是,不管用 Python, Ruby 還是 PHP來測試,我都測試不出來那個人跟我說的問題啊。orz ...

連著三篇 orz 了。 

真實引用網址:

http://blog.markplace.net/trackback.php?id=310

迴響 (0) · 引用 (0) 文章分類: 可以做人幹嘛寫程式