Как использовать сжатие gzip на сервере Python XMLRPC - PullRequest
0 голосов
/ 22 мая 2019

Как я могу адаптировать пример кода для сервера и клиента XML RPC из документации Python 2.7 , чтобы он использовал gzip для передачи между клиентом и сервером? Ниже приведен пример кода:

Сервер

from SimpleXMLRPCServer import SimpleXMLRPCServer
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler

# Restrict to a particular path.
class RequestHandler(SimpleXMLRPCRequestHandler):
    rpc_paths = ('/RPC2',)

# Create server
server = SimpleXMLRPCServer(("localhost", 8000),
                            requestHandler=RequestHandler)
server.register_introspection_functions()

# Register pow() function; this will use the value of
# pow.__name__ as the name, which is just 'pow'.
server.register_function(pow)

# Register a function under a different name
def adder_function(x,y):
    return x + y
server.register_function(adder_function, 'add')

# Register an instance; all the methods of the instance are
# published as XML-RPC methods (in this case, just 'div').
class MyFuncs:
    def div(self, x, y):
        return x // y

server.register_instance(MyFuncs())

# Run the server's main loop
server.serve_forever()

Клиент

import xmlrpclib

s = xmlrpclib.ServerProxy('http://localhost:8000')
print s.pow(2,3)  # Returns 2**3 = 8
print s.add(2,3)  # Returns 5
print s.div(5,2)  # Returns 5//2 = 2

# Print list of available methods
print s.system.listMethods()

Но это все несжатый открытый текст. Я читал документацию по библиотеке xmlrpc и похоже, что в ней есть встроенные опции для сжатия gzip, но я не смог понять, как на самом деле ее использовать.

...