Python Zeep -HTTP状态415(无需任何内容)



嗨,我正在使用Zeep来消费基于肥皂的Web服务,而且我继续获得HTTP状态415错误。我挖一点并使用Pycharm Debuggger,发现原因是:

'无法处理消息,因为内容类型'text/xml; charset = utf-8 xasofalw:rtt;___ utmvmbfuwvewb = yenqiucmrhw ' 不是预期类型'text/xml;charset = utf-8 '。'

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

我刚刚创建了一个看起来像这样的简单测试代码:

from zeep import Client
pretend_wsdl = 'https://pretendwsdl'
client = Client(wsdl=pretend_wsdl)
res = client.service.NameOfService()
print(res)

获取此错误:

zeep.exceptions.transporterror:服务器返回的http状态415(否 可用的内容)

我通过在zeep客户端中使用插件解决了问题。

我的代码看起来像这样:

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;charset = utf-8;我正在使用的WSDL并不认为来自Zeep的内容类型是文本/XML;charset = utf-8;

因此,我使用Zeep插件将内容类型明确设置为文本/XML;charset = utf-8;而且它令人惊讶地有效。

相关内容

  • 没有找到相关文章

最新更新