无法从 pysimplesoap 获取任何日志信息

Cannot get any log information from pysimplesoap

我正在尝试使用 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 顺便说一下)


结果出错:

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' 

然而,我真正的问题是我正在尝试(未成功)让日志记录工作,但看不到任何输出或 determine/confirm 它是什么 XML 结构 sending/receiving.如果我能看到要解析的内容 receiving/trying,我也许能够诊断出问题。

我有一个 gist 代码和我遇到的错误。

奇怪的是,在我的原始脚本中(在我精简为一些测试代码之前)我有一个辅助日志记录实例和文件处理程序,它工作得很好。所以它似乎特定于 pysimplesoap 日志记录。

如有任何帮助,我们将不胜感激。


编辑:解决方案

根据 KenK 的建议,我将方法调用修改为 (documentId='1234567') 并且成功了。脚本通过了那个错误,我在输出中得到了一些 log/debug 行。似乎 pysimplesoap 的 log/debug 行太少,以至于 none 在我遇到错误之前已经达到。

将以下代码添加到您的代码中:

import logging

logging.basicConfig(level=logging.DEBUG)

要修复您收到的错误,您需要指定一个属性名称。像这样:

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

用为此函数定义的任何内容替换名称。