Проблемы подключения SOAP API с использованием Python и Zeep

Мне нужна помощь с сценарием, который я пишу, для подключения к службе SOAP для API отчетов об инцидентах и ​​обновления DLP Symantec (v14.5) - https://support.symantec.com/en_US/article.DOC9264.html

В настоящее время я сталкиваюсь с проблемами при простом подключении к API с помощью Zeep. Похоже, что запрос пытается аутентифицироваться на " https://www.w3.org/2005/05/xmlmine", что, очевидно, не будет работать. Я предоставил примеры кода вместе с ошибками ниже.

  1. Версия zeep: 2.5
  2. WSDL, который вы используете: https://server_ip/ProtectManager/services/v2011/incidents?wsdl (внутренний)

Интересно, что если я удаляю? Wsdl из моих звонков, то, похоже, аутентифицируется нормально. Интересно, нужно ли мне создать еще один сервис?

wsdl = 'https://<internal_ip>/ProtectManager/services/v2011/incidents?wsdl'

session = Session()
session.auth = HTTPBasicAuth('username', 'password')
session.verify = False
transport = Transport(session=session)

client = Client(wsdl=wsdl, transport=transport)

Не имеет значения, что у меня после этого, потому что я получаю следующую ошибку в консоли:

"C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\Scripts\python.exe" "C:/Users/<redacted>/PycharmProjects/DLP Reports/dlp.py"
Traceback (most recent call last):
  File "C:/Users/<redacted>/PycharmProjects/DLP Reports/dlp.py", line 36, in <module>
    client = Client(wsdl=wsdl, transport=transport)
  File "C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\lib\site-packages\zeep\client.py", line 134, in __init__
    self.wsdl = Document(wsdl, self.transport, strict=strict)
  File "C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\lib\site-packages\zeep\wsdl\wsdl.py", line 81, in __init__
    root_definitions = Definition(self, document, self.location)
  File "C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\lib\site-packages\zeep\wsdl\wsdl.py", line 180, in __init__
    self.parse_types(doc)
  File "C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\lib\site-packages\zeep\wsdl\wsdl.py", line 313, in parse_types
    self.types.add_documents(schema_nodes, self.location)
  File "C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\lib\site-packages\zeep\xsd\schema.py", line 106, in add_documents
    document = self.create_new_document(node, location)
  File "C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\lib\site-packages\zeep\xsd\schema.py", line 207, in create_new_document
    schema.load(self, node)
  File "C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\lib\site-packages\zeep\xsd\schema.py", line 422, in load
    visitor.visit_schema(node)
  File "C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\lib\site-packages\zeep\xsd\visitor.py", line 137, in visit_schema
    self.process(child, parent=node)
  File "C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\lib\site-packages\zeep\xsd\visitor.py", line 73, in process
    result = visit_func(self, node, parent)
  File "C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\lib\site-packages\zeep\xsd\visitor.py", line 210, in visit_import
    schema = self.schema.create_new_document(schema_node, location)
  File "C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\lib\site-packages\zeep\xsd\schema.py", line 207, in create_new_document
    schema.load(self, node)
  File "C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\lib\site-packages\zeep\xsd\schema.py", line 422, in load
    visitor.visit_schema(node)
  File "C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\lib\site-packages\zeep\xsd\visitor.py", line 137, in visit_schema
    self.process(child, parent=node)
  File "C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\lib\site-packages\zeep\xsd\visitor.py", line 73, in process
    result = visit_func(self, node, parent)
  File "C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\lib\site-packages\zeep\xsd\visitor.py", line 196, in visit_import
    strict=self.schema.strict)
  File "C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\lib\site-packages\zeep\loader.py", line 72, in load_external
    content = transport.load(url)
  File "C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\lib\site-packages\zeep\transports.py", line 110, in load
    content = self._load_remote_data(url)
  File "C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\lib\site-packages\zeep\transports.py", line 126, in _load_remote_data
    response.raise_for_status()
  File "C:\Users\<redacted>\PycharmProjects\DLP Reports\venv\lib\site-packages\requests\models.py", line 935, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://www.w3.org/2005/05/xmlmime

Process finished with exit code 1

Я могу успешно подключиться к API через SOAPUI и запускать операции. SOAPUI говорит мне, что WSDL имеет следующие части определения:

  • инциденты? WSDL
  • инциденты? XSD =1
  • инциденты? XSD = 2
  • xmlmine
  • инциденты? XSD =3
  • инциденты? XSD =4
  • инциденты? XSD =5

Я могу только предположить, что с этой ссылкой на определение xmlmime что-то происходит. Будем очень благодарны любой помощи.

0 ответов

Другие вопросы по тегам