1

pysimplesoap (v.1.10) を使用しようとしていますが、メソッド リクエストの実行時に何らかの解析エラーのように見えるものを取得しています。

簡素化されたバージョン:

import pysimplesoap

soapURL = "https://site/path/to/soap"
namespace = "https://site/path/to/ns"

soapClient = pysimplesoap.client.SoapClient(location=soapURL + "?wsdl",namespace=namespace)

response = soapClient.getDocumentContent('1234567')

(python 2.7.8 btw)


エラーになります:

Traceback (most recent call last):
  File ".\SOAPtest2.py", line 60, in <module>
    response = soapClient.getDocumentContent('1234567')
  File "build\bdist.win32\egg\pysimplesoap\client.py", line 139, in <lambda>
AttributeError: 'str' object has no attribute 'call' 

ただし、私が持っている本当の質問は、ログを機能させようとしている (失敗した) が、出力を表示したり、送信/受信している XML 構造を特定/確認したりできないということです。何を受け取っているか、何を解析しようとしているのかがわかれば、問題を診断できるかもしれません。

私はコードの要点と私が得ているエラーも持っています。

奇妙な点は、元のスクリプト (一部のテスト コードだけに分解する前) に、セカンダリ ロギング インスタンスとファイル ハンドラーがあり、問題なく動作したことです。したがって、pysimplesoap ロギングに固有のようです。

どんな助けでも大歓迎です。


編集:解決策

KenK の推奨に従って、メソッド呼び出しを (documentId='1234567') に変更したところ、機能しました。スクリプトはそのエラーを乗り越え、出力にいくつかのログ/デバッグ行が表示されました。pysimplesoap にはログ/デバッグ行がほとんどないため、エラーが発生する前に何も到達しなかったようです。

4

1 に答える 1

0

次のコードをコードに追加します。

import logging

logging.basicConfig(level=logging.DEBUG)

発生しているエラーを修正するには、属性名を指定する必要があります。このような:

response = soapClient.getDocumentContent(name='1234567')

name を、この関数に定義されているものに置き換えます。

于 2015-02-14T02:52:50.497 に答える