Advertisement
Guest User

Untitled

a guest
Aug 15th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.59 KB | None | 0 0
  1.     async def httpreq(self, url, post_data=None, method='GET', return_data=False, headers=None, http_timeout=None,
  2.                       connector=None, time_it=None):
  3.  
  4.         if not method.upper() in self.settings.HTTP_REQUEST['METHODS']:
  5.             raise Exception(f'Method {method} not allowed.')
  6.  
  7.         http_timeout = self.settings.HTTP_REQUEST['TIMEOUT'] if not http_timeout \
  8.             else self.settings.HTTP_REQUEST['HTTP_TIMEOUT']
  9.         headers = self.settings.HTTP_REQUEST['HEADERS'] if not headers else \
  10.             self.settings.HTTP_REQUEST['HEADERS']
  11.  
  12.         if connector:
  13.             session = aiohttp.ClientSession(headers=headers, connector=connector)
  14.         else:
  15.             session = aiohttp.ClientSession(headers=headers)
  16.  
  17.         response = None
  18.         timeit_start = datetime.datetime.now() if time_it else None
  19.         timeit_total = None
  20.         data = None
  21.  
  22.         with session:
  23.             with aiohttp.Timeout(http_timeout):
  24.                 try:
  25.                     if method.lower() == 'get':
  26.                         response = await session.request('get', url)
  27.                     else:
  28.                         response = await session.request('post', url, data=post_data)
  29.                     if response:
  30.                         if response.status == 200:
  31.                             if return_data:
  32.                                 data = await response.read()
  33.  
  34.                             await response.release()
  35.  
  36.                             if timeit_start:
  37.                                 timeit_total = (datetime.datetime.now() - timeit_start).total_seconds()
  38.                         else:
  39.                             await response.release()
  40.  
  41.                             if timeit_start:
  42.                                 temeit_total = (datetime.datetime.now() - timeit_start).total_seconds()
  43.                                 raise HttpRequestError(response.reason, response.status, None,
  44.                                                        timeit_start=timeit_start, timeit_total=timeit_total)
  45.  
  46.                     if time_it:
  47.                         return data, timeit_start, timeit_total
  48.                     else:
  49.                         return data
  50.  
  51.                 except Exception as e:
  52.                     if timeit_start:
  53.                         timeit_total = (datetime.datetime.now() - timeit_start).total_seconds()
  54.  
  55.                     raise HttpRequestError(None, None, e, timeit_start=timeit_start, timeit_total=timeit_total)
  56.  
  57.                 finally:
  58.                     if response:
  59.                         await response.release()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement