Старый проект с неактуальной версией SOAP - как справиться с этим через Python / Zeep? - PullRequest
0 голосов
/ 03 октября 2018

Я новичок в протоколе SOAP.Я использую библиотеку Python / Zeep.
Я пытаюсь использовать ее со старым проектом (начиная с 2012 года), возможно, с неактуальной версией SOAP, и получаю ошибку 403.
Я обнаружил, что это вызвано неправильный HTTP-заголовок, но я не вижу в документации, как обрабатывать его при создании объекта клиента:
SOAP-сообщение для веб-службы - код ответа HTTP: 403 для URL
Я получаю ошибку 403когда я создаю Клиент - поэтому я должен редактировать здесь Content-Type в HTTP Request.Есть аргумент для его обработки?

Мой код:

from requests import Session
from zeep import Client, Settings
from zeep.transports import Transport


class Api(object):
    def __init__(self):
        self.url = 'http://beta.api.biurowin.net/'
        self.session = Session()
        self.session.headers.update({
            'Content-Type': 'application/soap+xml; charset=utf-8',
        })
        self.transport = Transport(session=self.session)
        self.transport.load(self.url)
        client = Client(transport=Transport)


Api()

Ошибка:

Traceback (most recent call last):
  File "biurowin_api.py", line 20, in <module>
    Api()
  File "biurowin_api.py", line 15, in __init__
    self.transport.load(self.url)
  File "/home/patryk/workspace/.virtualenvs/peruccy/lib/python3.6/site-packages/zeep/transports.py", line 110, in load
    content = self._load_remote_data(url)
  File "/home/patryk/workspace/.virtualenvs/peruccy/lib/python3.6/site-packages/zeep/transports.py", line 127, in _load_remote_data
    response.raise_for_status()
  File "/home/patryk/workspace/.virtualenvs/peruccy/lib/python3.6/site-packages/requests/models.py", line 939, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: http://beta.api.biurowin.net/
...