Как извлечь конечную точку мыльного веб-сервиса из ответа wsdl, используя python - PullRequest
0 голосов
/ 21 июня 2019

Я хочу получить данные из веб-сервиса.Конечная точка сохраняется в теге адреса адреса в ответе wsdl.Как извлечь из него адрес этого местоположения?

Я использовал xml.etree.ElementTree для извлечения элементов.Я нашел его в событиях запуска как "" "start http://schemas.xmlsoap.org/wsdl/soap/}address' at 0x00000032DF7AC908>" "", но он находится в адресе ('0x00000032DF7AC908').Я не мог прочитать это.

Кроме того, я использовал Клиент от Zeep.Я мог найти значения службы, портов, операции и т. Д. Но я не смог найти адрес местоположения

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)

. В первой части я получил это: start http://schemas.xmlsoap.org/wsdl/soap/}address' at 0x00000032DF7AC908>.Как я могу прочитать это с того адреса?

Во второй части я не смог найти никакой информации об этом.Что я должен использовать, чтобы получить это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...