<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

async def post(self, path, data={}, send_raw=False, **params):
    '''sends post request

    Parameters
    ----------
    path : str
      same as get_url
    query : kargs dict
      additional info to pass to get_url

    See Also
    --------
      get_url :

    Returns
    -------
    requests.models.Response
      the response that was given
    '''
    url  = self.get_url(path, **params)
    jstr = json.dumps(data)

    for i in range(self.tries+1):
      try:
        if send_raw:
          resp = await self.session.post(url, data=data, timeout=self.timeout)
        else:
          resp = await self.session.post(url, data=jstr, timeout=self.timeout)
        if await self._process_resp(resp):
          return resp
        else:
          continue
      except aiohttp.ClientConnectionError:
        if i >= self.tries:
          raise aiohttp.ClientConnectionError(
                        'Emby server is probably down'
          )