2014-12-13 101 views
0

这是我第一次使用SOAP,我试图使用python发送服务调用。我用SOAPypysimplesoap作为客户端库。发送基于SOAP协议的服务调用

我有以下几点:

  1. WSDL File
  2. XSD文件。
  3. 我尝试执行的方法名称。
  4. 所有需要的参数。

我想要做什么:

  1. 执行的方法。
  2. 获取从方法返回的xml文件

这是一个工作PHP Script就像我想要的,但我需要它在Python中。

回答

0

只需使用这段代码:

from pysimplesoap.client import SoapClient 
client = SoapClient(wsdl="your_file.wsdl",trace=False) 
response = client.YourMehtod(p="parameter") 
result = response['YourResult'] 

的事情,你需要从这段代码得到的是:

  1. “your_file.wsdl”应该是指向你的WSDL的一个网址文件位置。可能是存储在文件系统上的HTTP URL或文件。
  2. YourMethod是您要调用的方法的名称(把所有的方法提供给你,在代码片段的第二行的电话后使用print client
  3. YourRestult是你从得到的结果呼叫。使用print response检查你所得到的所有结果。

你也可以考虑使用suds库,如果SOAP客户端是你所关心的。

+0

1.我得到了一个意想不到的**关键字参数**由于初始化SoapClient时的_trace_。 2.代码的第三行抛出一个** TypeError ** _call()接受3个参数(给出2个)_ – mbanayosi 2014-12-13 11:46:24

+0

对于**意外的关键字**,您可能使用的是不同版本的** pysimplesoap * *。只需删除该参数。第二个错误显然是因为您的远程方法需要多个参数。根据需要添加尽可能多的参数。 – 2014-12-13 11:50:32

+0

参数应该是什么类型?我试着_dict_,_tuples_数组都失败了。 – mbanayosi 2014-12-13 12:16:58