33import requests
44import urllib
55import abc
6+ import logging
7+ import json
68
79from splitio .optional .loaders import aiohttp
810from splitio .util .time import get_current_epoch_time_ms
1214AUTH_URL = 'https://auth.split.io/api'
1315TELEMETRY_URL = 'https://telemetry.split.io/api'
1416
17+ _LOGGER = logging .getLogger (__name__ )
18+
1519
1620HttpResponse = namedtuple ('HttpResponse' , ['status_code' , 'body' , 'headers' ])
1721
@@ -242,13 +246,20 @@ async def get(self, server, path, apikey, query=None, extra_headers=None): # py
242246 headers .update (extra_headers )
243247 start = get_current_epoch_time_ms ()
244248 try :
249+ url = _build_url (server , path , self ._urls )
250+ _LOGGER .debug ("GET request: %s" , url )
251+ _LOGGER .debug ("query params: %s" , query )
252+ _LOGGER .debug ("headers: %s" , headers )
245253 async with self ._session .get (
246- _build_url ( server , path , self . _urls ) ,
254+ url ,
247255 params = query ,
248256 headers = headers ,
249257 timeout = self ._timeout
250258 ) as response :
251259 body = await response .text ()
260+ _LOGGER .debug ("Response:" )
261+ _LOGGER .debug (response )
262+ _LOGGER .debug (body )
252263 await self ._record_telemetry (response .status , get_current_epoch_time_ms () - start )
253264 return HttpResponse (response .status , body , response .headers )
254265 except aiohttp .ClientError as exc : # pylint: disable=broad-except
@@ -277,6 +288,12 @@ async def post(self, server, path, apikey, body, query=None, extra_headers=None)
277288 headers .update (extra_headers )
278289 start = get_current_epoch_time_ms ()
279290 try :
291+ headers ['Accept-Encoding' ] = 'gzip'
292+ _LOGGER .debug ("POST request: %s" , _build_url (server , path , self ._urls ))
293+ _LOGGER .debug ("query params: %s" , query )
294+ _LOGGER .debug ("headers: %s" , headers )
295+ _LOGGER .debug ("payload: " )
296+ _LOGGER .debug (str (json .dumps (body )).encode ('utf-8' ))
280297 async with self ._session .post (
281298 _build_url (server , path , self ._urls ),
282299 params = query ,
@@ -285,6 +302,9 @@ async def post(self, server, path, apikey, body, query=None, extra_headers=None)
285302 timeout = self ._timeout
286303 ) as response :
287304 body = await response .text ()
305+ _LOGGER .debug ("Response:" )
306+ _LOGGER .debug (response )
307+ _LOGGER .debug (body )
288308 await self ._record_telemetry (response .status , get_current_epoch_time_ms () - start )
289309 return HttpResponse (response .status , body , response .headers )
290310 except aiohttp .ClientError as exc : # pylint: disable=broad-except
@@ -305,3 +325,7 @@ async def _record_telemetry(self, status_code, elapsed):
305325 await self ._telemetry_runtime_producer .record_successful_sync (self ._metric_name , get_current_epoch_time_ms ())
306326 return
307327 await self ._telemetry_runtime_producer .record_sync_error (self ._metric_name , status_code )
328+
329+ async def close_session (self ):
330+ if not self ._session .closed :
331+ await self ._session .close ()
0 commit comments