code: def _post(self, url, params):
      common.logger.debug(
          "POST to %s with params %s" % (url, str(params))
      )
  
      # Serialize access to nonce generation and http requests to avoid
      # sending them in the wrong order.
      with self.__lock:
          data, headers = self._buildQuery(params)
          response = requests.post(
              url,
              headers=headers,
              data=data,
              timeout=HTTPClient.REQUEST_TIMEOUT,
          )
          response.raise_for_status()
  
      jsonResponse = response.json()
  
      # Check for errors.
      if isinstance(jsonResponse, dict):
          error = jsonResponse.get("error")
          if error is not None:
              raise Exception(error)
  
      return jsonResponse
  
imports: import time
  import datetime
  import hmac
  import hashlib
  import requests
  import threading
  from pyalgotrade.utils import dt
  from pyalgotrade.bitstamp import common
  import logging
label_desc: Use image node_id 3 for calling the HTTPClient obj's underlying member method code with example usage: obj._post(url, params) and returns: jsonResponse