我是 Python 的新手,而且我以前没有使用过 Amadeus API,我试图从 Amadeus(http://webservices.amadeus.com/)soap API 建立连接,我有 .wsdl 文件,我想发送请求并使用 python 获得响应。我看过 SOAPpy、suds 并尝试使用,就像这个例子:
但是我无法确定请求是否正在发送到服务器,如果请求正在发送如何获取响应数据。
请帮助我提前谢谢。
我是 Python 的新手,而且我以前没有使用过 Amadeus API,我试图从 Amadeus(http://webservices.amadeus.com/)soap API 建立连接,我有 .wsdl 文件,我想发送请求并使用 python 获得响应。我看过 SOAPpy、suds 并尝试使用,就像这个例子:
但是我无法确定请求是否正在发送到服务器,如果请求正在发送如何获取响应数据。
请帮助我提前谢谢。
如果您为传输库启用调试日志记录。
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