Python Zeep-HTTP状态415(无可用内容)

Python Zeep-HTTP状态415(无可用内容),python,web-services,soap,zeep,Python,Web Services,Soap,Zeep,您好,我正在使用基于soap的web服务, 我不断得到HTTP状态415错误。我挖了一点,然后用 Pycharm调试程序并发现原因是: '无法处理消息,因为内容类型为'text/xml; 字符集=utf-8 XaSOfalw:rtt___utmvmBfuwVEwB=yEnqIuCmRhw\'was 不是预期的类型\'text/xml;字符集=utf-8\'。' 内容类型有什么问题?我如何在Zeep中更改它 我刚刚创建了一个简单的测试代码,如下所示: from zeep import Client

您好,我正在使用基于soap的web服务, 我不断得到HTTP状态415错误。我挖了一点,然后用 Pycharm调试程序并发现原因是:

'无法处理消息,因为内容类型为'text/xml; 字符集=utf-8 XaSOfalw:rtt___utmvmBfuwVEwB=yEnqIuCmRhw\'was 不是预期的类型\'text/xml;字符集=utf-8\'。'

内容类型有什么问题?我如何在Zeep中更改它

我刚刚创建了一个简单的测试代码,如下所示:

from zeep import Client

pretend_wsdl = 'https://pretendwsdl'
client = Client(wsdl=pretend_wsdl)

res = client.service.NameOfService()
print(res)
from zeep import Client
from zeep import Plugin


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


pretend_wsdl = 'https://pretendwsdl.com'

client = Client(wsdl=pretend_wsdl, plugins=[MyLoggingPlugin()])

res = client.service.NameOfService()

print(res)
并获取以下错误:

zeep.exceptions.TransportError:服务器返回HTTP状态415(否 内容(可用)


我已经通过在zeep客户端中使用解决了这个问题

我的代码如下所示:

from zeep import Client

pretend_wsdl = 'https://pretendwsdl'
client = Client(wsdl=pretend_wsdl)

res = client.service.NameOfService()
print(res)
from zeep import Client
from zeep import Plugin


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


pretend_wsdl = 'https://pretendwsdl.com'

client = Client(wsdl=pretend_wsdl, plugins=[MyLoggingPlugin()])

res = client.service.NameOfService()

print(res)
我觉得很奇怪,因为zeep的默认内容类型是text/xml;字符集=utf-8; 我使用的wsdl并不认为zeep中的内容类型是text/xml;字符集=utf-8

因此,我使用zeep插件显式地将内容类型设置为text/xml;字符集=utf-8;它出人意料地起作用