Python で xmlrpclib を使用してカスタム トランスポート クラスを使用しようとしていますが、カスタム トランスポートを指定すると、最初の呼び出しで例外が発生します。
File "/Users/sorins/dev/py/confluence/confluence/confluence.py", line 208, in __init__
self._token = self._server.confluence1.login(username, password)
File "/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xmlrpclib.py", line 1224, in __call__
return self.__send(self.__name, args)
File "/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xmlrpclib.py", line 1578, in __request
verbose=self.__verbose
TypeError: unbound method request() must be called with SafeTransport instance as first argument (got str instance instead)
サンプルコード:
#!/usr/bin/env python
from xmlrpclib import Transport
class MyTransport(Transport):
pass
server = xmlrpclib.ServerProxy('https://example.com/rpc/xmlrpc',allow_none=True,transport=MyTransport)
server.confluence1.login(username, password) # <-- exception
元の接続は確立されますが、RPC メソッドへの最初の呼び出しは上記のエラーで失敗します。
transport=MyTransport を削除すると、問題が解決します。
注: SafeTransport でも同じことを試しましたが、結果は同じでした。
いくつかのヘッダーを挿入するには、カスタム トランスポートが必要です。これを修正するにはどうすればよいですか?