async def _async_get(session, url, item, headers={}, cookies={}, params={}, printer=None, iteration=None):
     """
     Execute http get requests using an aiohttp session.
     :param session: Aiohttp session
     :param url: Url for http request
     :param headers: Headers for http request
     :param cookies: Cookies for http request
     :param printer: (print_func, total, task) for printing
     :param iteration: List with single integer for counting current iteration
     :return: Custom response object
     """
     async with session.get(url, headers=headers, cookies=cookies, params=params) as response:
         if printer is not None and iteration is not None:
             iteration[0] += 1
             print_func, total, task = printer
             print_func(iteration[0], total, task)
         image = await response.read()
         try:
             json = await response.json()
         except Exception:
             json = None
         try:
             text = await response.text()
         except Exception:
             text = None
         return item, req.Response(response, None, None, json, text, read=image)
 async def _async_put_json(session, url, payload, headers={}, cookies={}, params={}, printer=None, iteration=None):
     """
     Execute http put requests using an aiohttp session.
     :param session: Aiohttp session
     :param url: Url for http request
     :param payload: Json data for request
     :param headers: Headers for http request
     :param cookies: Cookies for http request
     :param printer: (print_func, total, task) for printing
     :param iteration: List with single integer for counting current iteration
     :return: Custom response object
     """
     async with session.put(url, headers=headers, cookies=cookies, json=payload, params=params) as response:
         if printer is not None and iteration is not None:
             iteration[0] += 1
             print_func, total, task = printer
             print_func(iteration[0], total, task)
         heads1, json1, body1 = None, None, None
         return req.Response(response, payload, heads1, json1, body1)
 async def _async_get_item_page(session,
                                url,
                                item,
                                cookies,
                                params,
                                printer=None):
     """
     Gets Item page using session
     :param session: Session for request
     :param url: Url for http get request
     :param item: Dict item object to get returned with response
     :param cookies: Cookies for http request
     :param printer: (print_func, total, task, iteration) tuple
     :param params: Params for http request
     :return: (item, res) tuple, custom Response object
     """
     async with session.get(url, cookies=cookies, params=params) as res:
         text = await res.text()
         new_res = req.Response(res, None, {}, None, text)
         if printer is not None:
             print_func, total, task, iteration = printer
             print_func(iteration[0], total, task)
             iteration[0] += 1
         return item, new_res