YAMAGUCHI::weblog

土足で窓から失礼いたします。今日からあなたの息子になります。 当年とって92歳、下町の発明王、エジソンです。

XML-RPCの利用

動機

ウェブサービスを利用する場合XML-RPCを使うことがあるため、使い方を調べてみた。

使い方

Pythonでは2.2で標準ライブラリに加わったxmlrpclibを使えば一瞬でできます。

import xmlrpclib
urls = ['http://d.hatena.ne.jp/ymotongpoo',
        'http://www.python.org']
server = xmlrpclib.ServerProxy('http://b.hatena.ne.jp/xmlrpc')
result1 = server.bookmark.getTotalCount(urls[0])
result2 = server.bookmark.getCount(*urls)

print 'YAMAGUCHI::weblog ->', result1
print result2

結果はこんな感じです。

YAMAGUCHI::weblog -> 49
{'http://www.python.org': 2, 'http://d.hatena.ne.jp/ymotongpoo': 0}

詳細

Pythonの場合、XML-RPCで用いる関数名が直感的に使えます。たとえば上記のはてなブックマークの場合は

    uri
        http://b.hatena.ne.jp/xmlrpc
    methodName
        bookmark.getCount
    parameters
        件数を取得したいURLを指定(複数指定可能/50件まで)

となってるので、ServerProxyクラスで作ったインスタンスからそのままbookmark.getCountと書いてやればいい。
ただしリストを直截投げることができないので、リストは展開して渡してあげないといけない。

server.bookmark.getCount(*utls)
||>

*1227302739*[Mac]スクリーンが拡大されてしまった
コーディングしてたらいきなり画面が拡大されてしまってかなり焦った。どうもユニバーサルアクセスの「ズーム機能」がオンになっていて、ショートカットキーにふれてしまったみたいだ。
普段は使わないのでこれをオフにして、Command+option+8で元に戻せました。めでたい。