在soappy上压缩的xml

时间:2010-03-05 21:51:59

标签: python compression web-services soappy

我正在开发一个在python中使用webservices的应用程序,双方(服务器和客户端)都是用Python开发的,并且使用SOAPpy作为webservices,但是,你知道,xml太冗长了,我想压缩它,但据我在谷歌搜索,我找不到有用的东西。

1 个答案:

答案 0 :(得分:2)

您可以向SOAPpy调用添加HTTP标头,如图所示here(此示例发送Cookie,但您可以将其概括为添加不同的标头) - 要请求压缩,请添加标头Accept-Encoding: gzip。 Web服务器(不是应用程序服务器,如Python中的“SOAPpy服务器”,但它在顶层运行的实际HTTP服务器,例如Apache)应提供压缩并在响应中包含标头Content-Encoding: gzip以确认(如果这不能正常工作,你必须继承传输类的子类并在那里插入压缩 - 我手头没有SOAPpy安装来检查)。

缺少的一点是,如何在进一步处理之前欺骗你的SOAPpy.SOAPProxy进行有效负载的解压缩 - 而正确的方法又是子类HTTPTransport,就像add-header部分一样;在上面的URL中,查看行data = response.read()并考虑检查标题(以确认内容编码是gzip根据需要)并根据需要解压缩。

当然,要处理gzip压缩和解压缩,你可以使用Python标准库的zlib模块(而不是gzip模块,它增加了zlib标头元数据处理制作和阅读.gz个文件 - 您不是处理.gz个文件,而是使用gzip算法压缩的流,以及zlib的工作。< / p>