0

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 でも同じことを試しましたが、結果は同じでした。

いくつかのヘッダーを挿入するには、カスタム トランスポートが必要です。これを修正するにはどうすればよいですか?

4

1 に答える 1

1

transport=MyTransport()タイプではなく、このタイプのインスタンスに変更します。

于 2014-05-06T11:13:43.923 に答える