You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@thrift.apache.org by 张沈鹏 <zs...@gmail.com> on 2013/02/09 19:53:58 UTC

TZlibTransport can't work together with THttpClient ? (python client)

TZlibTransport seems should reset after every flush (with THttpClient) ?

Else ,   the frist time call are right ; the second time call raise error ?

Is this a bug  to fix ?


import _env
from thrift import Thrift
from thrift.transport import TTransport
from thrift.transport.TZlibTransport import TZlibTransport as _TZlibTransport
from thrift.protocol.TCompactProtocol import TCompactProtocol as Protocol
from thrift.transport.THttpClient import THttpClient
from zlib import decompress
import zlib

class TZlibTransport(_TZlibTransport):
    def flush(self):
        result = _TZlibTransport.flush(self)
        self._reinit_buffers()
        self._init_zlib()
        self._init_stats()
        return result


def saas_client(saas, host="127.0.0.1", port=80):
    transport = THttpClient("http://%s:%s/" % (host, port))
    transport.setTimeout(5000)
    transport = TZlibTransport(transport)
    transport.open()

    protocol = Protocol(transport)
    client = saas.Client(protocol)

    return transport, client

if __name__ == "__main__":
    from misc.saas.xi.saas import Interface
    import time
    transport, client = saas_client(Interface, "saas-xi.42qu.me")

    while True:
        print client.poListBeforeByUserId(1)
        time.sleep(1)