spyne - 请求lxml编码错误

时间:2016-07-14 16:28:37

标签: soap spyne

问题

我正在使用远程服务器测试wsdl应用程序,因此我对请求机制没有任何影响。

使用它进行测试时,我会收到此日志消息。

DEBUG:spyne.protocol.soap.soap11:ValueError: Deserializing from unicode strings
    with encoding declaration is not supported by lxml.
DEBUG:spyne.protocol.xml:Validated ? False
40.50.60.70 - - [14/Jul/2016 16:58:42] "POST /?WSDL HTTP/1.1" 500 480

所以问题似乎是,我的远程服务器以utf-8编码的字符串进行请求,但是我无法在本地计算机上重现它。在那里我用curl做了这个,它有一个charset=utf-8编码的头和一个输入xml,它也有encoding='UTF-8' in it's`-tag。

$ curl -X POST -H "Content-Type: text/xml; charset=utf-8" -d @request.xml
    http://localhost:8000 > response.xml

途径

我尝试在构建wsdl的进程中设置event_listener,以便有机会使用ctx.in_string或其他东西来操作输入字符串。

MyService.event_manager.add_listener('wsdl_document_built', _on_wsdl_document_built)
MyService.event_manager.add_listener('document_built', _on_document_built)

application.event_manager.add_listener('wsdl_document_built', _on_wsdl_document_built)
application.event_manager.add_listener('document_built', _on_document_built)

但是没有执行我添加的功能。

我还搜索了一些配置类型的文档,以便对其进行预解码。

所以我的问题是如何强制对传入请求xml进行某种编码?

0 个答案:

没有答案