code: async def create_post_request(self, method: str, params: Dict = None):
          
          if params is None:
              params = {}
          headers = {"Content-Type": "application/json"}
          payload = {
              "method": method,
              "params": [params],
              "id": next(self.idgen),
              "version": "1.0",
          }
  
          if self.debug > 1:
              _LOGGER.debug("> POST %s with body: %s", self.guide_endpoint, payload)
  
          async with aiohttp.ClientSession(headers=headers) as session:
              res = await session.post(self.guide_endpoint, json=payload, headers=headers)
              if self.debug > 1:
                  _LOGGER.debug("Received %s: %s" % (res.status_code, res.text))
              if res.status != 200:
                  raise SongpalException(
                      "Got a non-ok (status %s) response for %s" % (res.status, method),
                      error=await res.json()["error"],
                  )
  
              res = await res.json()
  
          # TODO handle exceptions from POST? This used to raise SongpalException
          #      on requests.RequestException (Unable to get APIs).
  
          if "error" in res:
              raise SongpalException("Got an error for %s" % method, error=res["error"])
  
          if self.debug > 1:
              _LOGGER.debug("Got %s: %s", method, pf(res))
  
          return res
docs: Call the given method over POST.
  
          :param method: Name of the method
          :param params: dict of parameters
          :return: JSON object