我想从Web服务获取数据。端点存储在wsdl的响应中的地址位置标记中。如何从中提取该地址位置?
我已经使用xml.etree.ElementTree提取元素。我在启动事件中发现它为“”“,在0x00000032DF7AC908>”“”处启动http://schemas.xmlsoap.org/wsdl/soap/}地址',但它在地址('0x00000032DF7AC908')中。我看不懂。
我还使用过zeep的Client。我可以找到服务,端口,操作等的值。但是,我找不到地址位置
import requests
import xml.etree.ElementTree as et
import operator
from io import StringIO
from zeep import Client
from requests.auth import HTTPBasicAuth # or HTTPDigestAuth, or OAuth1, etc.
from zeep.transports import Transport
from requests import Session
url="aaa"
user="bbb"
pwd="ccc"
response = requests.get(url, auth=(user, pwd))
my_schema = response.text
#############################################################################
#part1
events = ['start']
for event, elem in et.iterparse(StringIO(my_schema), events=events):
print (event, elem)
#############################################################################
#part2
session = Session()
session.auth = HTTPBasicAuth(user, pwd)
client = Client(url, transport=Transport(session=session))
for service in client.wsdl.services.values():
print ("service:", service.name)
for port in service.ports.values():
operations = sorted(
port.binding._operations.values(),
key=operator.attrgetter('name'))
print("port :",port)
print("binding :",port.binding)
print("operation :",operations)
for operation in operations:
print ("method :", operation.name)
print (" input :", operation.input.signature())
print (" output:", operation.output.signature())
print("list", operation.input.body.type.elements)
在第一部分中,我得到了: 在0x00000032DF7AC908>处开始http://schemas.xmlsoap.org/wsdl/soap/}地址”。如何从该地址阅读?
在第二部分中,我找不到有关它的任何信息。我应该用什么来获得它?