微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何使用 spyne 接受分块编码数据

如何解决我如何使用 spyne 接受分块编码数据

我尝试使用 spyne 的示例 python 文件来接受来自 http 请求的分块正文数据,代码如下:

class HelloWorldService(ServiceBase):
    # @rpc(Unicode,Integer,_returns=Iterable(Unicode))
    @rpc(Unicode,_returns=Unicode)
    def say_hello(self,name,times):
        """for i in range(times):
            yield 'Hello,%s' % name"""
        print(name,times)
        return 'success'


application = Application([HelloWorldService],tns='spyne.examples.hello',in_protocol=Soap11(validator='lxml'),out_protocol=JsonDocument()
                          )
wsgi_app = WsgiApplication(application,chunked=True)

然后抛出这个错误

XMLSyntaxError("Start tag expected,'<' not found,line 1,column 1")

例如,当我发送这样的数据时:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <say_hello xmlns="spyne.examples.hello">
      <name>str1</name>
      <times>1</times>
    </say_hello>
  </soapenv:Body>
</soapenv:Envelope>

错误会是这样的:

XMLSyntaxError("Start tag expected,column 1") in string b'f7\r\n<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><say_hello xmlns="spyne.examples.hello"><name>str1</name><times>1</times></say_hello></soapenv:Body></soapenv:Envel'

似乎spyne服务器已经检查了“f7”的内容长度,但是窃取了其中包含内容长度字符串的数据字符串,导致请求体的最后一个像“ope>”丢失。 不知道是不是有什么问题

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。