Pythonでxmlrpc

 普段はJavaでTrac XML-RPC Pluginにアクセスしているのですが、どうせならPythonだけで完結できるように・・・ってことで、Pythonを用いてアクセスしてみるテスト。

 単純にアクセスするだけであれば、実はすごく簡単。
import xmlrpclib
srcServer = xmlrpclib.ServerProxy('http://hostname/trac/test/xmlrpc')
srcTicket = srcServer.ticket.get(1)
って感じで、実行すると、チケット#1の内容を取得することができます。Basic認証が必要な場合は、
srcServer = xmlrpclib.ServerProxy('http://username:password@hostname/trac/test/login/xmlrpc')
となります。SSLでの通信も、単純にプロトコルをhttpsにするだけで問題なく行えます。
srcServer = xmlrpclib.ServerProxy('https://username:password@hostname/trac/test/login/xmlrpc')
Pythonのhttps通信では、サーバ証明書のチェックは特に行っていないようで、自己署名証明書等を用いた場合でも特にエラー等は出たりしないようです(Python2.5.1で動作確認)。

 なお、標準状態では、SSLクライアント証明書を利用したXML-RPCアクセスはできないようです。ただ、PythonのhttplibのHTTPSConnectionはSSLクライアント証明書を利用できるようなので、方法はあるはず・・・。

【普通にSSLクライアント証明書を用いてアクセス】
p12形式のファイルだと使用できないとのことなので、
openssl pkcs12 -nodes -in someclient.p12 -out someclient.pem
で変換しておきます。なお、-nodesでパスワードも除去していますので、取り扱いには注意が必要となります。証明書ファイルを用いて、
import httplib
h = httplib.HTTPSCon

(1/5) Next»

Subversion・Trac・etc.
Sep 25, 2008




Comments(0)|コメントを書く

List all categories
Recent Comments
About

このブログを友達に教える

コミュニティ | 有名人・芸能人ブログ | ケータイ占い | ケータイ小説 | 掲示板


画面TOP↑


powered by cocolog