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')

(蟒蛇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' 

但是,我真正的问题是我正在尝试(未成功)使日志记录正常工作,但看不到任何输出或确定/确认它正在发送/接收的 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 回答