diff --git a/aiohttp_xmlrpc/client.py b/aiohttp_xmlrpc/client.py index b699d7b..0bae835 100644 --- a/aiohttp_xmlrpc/client.py +++ b/aiohttp_xmlrpc/client.py @@ -14,11 +14,11 @@ class ServerProxy(object): - __slots__ = 'client', 'url', 'loop', 'headers', 'encoding' + __slots__ = 'client', 'url', 'ssl', 'loop', 'headers', 'encoding' USER_AGENT = u'aiohttp XML-RPC client (Python: {0}, version: {1})'.format(__pyversion__, __version__) - def __init__(self, url, client=None, loop=None, headers=None, encoding=None, **kwargs): + def __init__(self, url, ssl_context=None, client=None, loop=None, headers=None, encoding=None, **kwargs): self.headers = MultiDict(headers or {}) self.headers.setdefault('Content-Type', 'text/xml') @@ -27,6 +27,7 @@ def __init__(self, url, client=None, loop=None, headers=None, encoding=None, **k self.encoding = encoding self.url = str(url) + self.ssl = ssl_context self.loop = loop or asyncio.get_event_loop() self.client = client or aiohttp.client.ClientSession(loop=self.loop, **kwargs) @@ -89,6 +90,7 @@ def _parse_response(body, method_name): def __remote_call(self, method_name, *args, **kwargs): response = yield from self.client.post( str(self.url), + ssl_context = self.ssl data=etree.tostring( self._make_request(method_name, *args, **kwargs), xml_declaration=True,