1

SOAPpy を使用した Python Web サービスがあります。Web サービス サーバーは、次のように構成されています。

class myClass:
  def hello():
    return 'world'

if __name__ == "__main__":
  server = SOAPServer( ( 'localhost', 8888 ) )
  myObject = myClass()
  namespace = 'whatever::namespace'
  server.registerObject( myObject, namespace )
  server.serve_forever()

クライアントが Web サービスからメソッドを呼び出す場合、hello()ヘッダーを読み取って、デバッグ用の情報 (IP アドレスなど) のログを開始するにはどうすればよいですか?

4

2 に答える 2

2

hello メソッドでログを記録しますか? SOAPContext 情報 (この情報の一部を提供できます) を関数/メソッド呼び出しに渡す方法を示す最小限の例を次に示します。

from SOAPpy import *

def hello(_SOAPContext = None):
    return "Your IP address is %s" % _SOAPContext.connection.getpeername()[0]

if __name__ == "__main__":
  server = SOAPServer( ( '10.3.40.104', 8080 ) )
  server.registerFunction( MethodSig(hello, keywords=0, context=1) )
  server.serve_forever()
于 2010-08-09T18:25:10.137 に答える
1

を拡張して置き換えるRequestHandlerSoapServer オブジェクトに を追加できます(例としてserver.pyのソースを見てください)。SOAPRequestHandlerHeaderHandler

于 2010-08-09T17:45:33.317 に答える