2

我是 Python 的新手,而且我以前没有使用过 Amadeus API,我试图从 Amadeus(http://webservices.amadeus.com/)soap API 建立连接,我有 .wsdl 文件,我想发送请求并使用 python 获得响应。我看过 SOAPpy、suds 并尝试使用,就像这个例子:

从 python 发送一个肥皂请求

但是我无法确定请求是否正在发送到服务器,如果请求正在发送如何获取响应数据。

请帮助我提前谢谢。

4

1 回答 1

0

如果您为传输库启用调试日志记录。

import logging
logging.basicConfig(level=logging.INFO)
logging.getLogger('suds.transport.http').setLevel(logging.DEBUG)

您将能够在日志输出中看到类似这样的内容:

DEBUG:suds.transport.http:sending:
URL: http://someurl
HEADERS: {'SOAPAction': '"http://blablabla/identityCheck"', 'Content-Type': 'text/xml; charset=utf-8', 'Content-type': 'text/xml; charset=utf-8', 'Soapaction': '"http://blablabla/blablabla"'}
MESSAGE: <xml......>
DEBUG:suds.transport.http:received:
CODE: 200
HEADERS: {'header1': 'blablabla'}
MESSAGE: <xml......>

此外,您还可以打印出服务结果对象。这假设我在端点中有一个名为 identityCheck 的方法,并将它的客户作为输入。

client = Client(wsdl_url, location=endpoint_url)
customer = client.factory.create('customer')
customer.userId = 'A'
customer.password = 'B'

result = client.service.identityCheck(customer)
print result
于 2014-03-17T14:32:19.667 回答