request.exceptions.HTTPError: 415 Ошибка клиента: неподдерживаемый тип носителя при использовании python zeep - PullRequest
0 голосов
/ 30 января 2020

Я использую python Zeep для использования веб-службы. Я использовал SOAP пользовательский интерфейс, и я могу использовать веб-сервис. когда я использую приведенный ниже код, он генерирует ошибку HTTP. Как просмотреть содержимое запроса SOAP, чтобы фактически проверить, что я отправляю в запросе.

class MyLoggingPlugin(Plugin):

    def ingress(self, envelope, http_headers, operation):
        return envelope, http_headers

    def egress(self, envelope, http_headers, operation, binding_options):
        http_headers['Content-Type'] = 'text/xml; charset=utf-8;'
        return envelope, http_headers

requests.packages.urllib3.disable_warnings()
session = Session()
session.verify = False
session.auth = HTTPBasicAuth('xxxxxxx', 'xxxxx')
client = 
Client('https://xxxx.com:44383/sap/bc/srt/rfc/sap/zws_send_emailid/101/zws_send_emailid/binding_1',
     transport=Transport(session=session),plugins=[MyLoggingPlugin()])

1 Ответ

1 голос
/ 09 марта 2020

Не уверен, если вам все еще нужен ответ.

Вы можете просто изменить свой плагин, чтобы увидеть фактический xml, например:

from lxml import etree

class MyLoggingPlugin(Plugin):

    def ingress(self, envelope, http_headers, operation):
        # to see whats coming in
        print(etree.tostring(envelope, pretty_print=True))
        return envelope, http_headers

    def egress(self, envelope, http_headers, operation, binding_options):
        http_headers['Content-Type'] = 'text/xml; charset=utf-8;'
        # to see whats going out
        print(etree.tostring(envelope, pretty_print=True))
        return envelope, http_headers

надеюсь, это поможет.

...