code: def _request(self, func, url, version=1, *args, **kwargs):
          
          return_json = kwargs.pop('return_json', False)
          url = self.api_url[version] + url
          response = func(url, *args, **kwargs)
  
          if 'proxies' not in kwargs:
              kwargs['proxies'] = self.proxydict
  
          # Check for error, raising an exception if appropriate.
          response.raise_for_status()
  
          try:
              json_response = response.json()
          except ValueError:
              json_response = None
          if isinstance(json_response, dict):
              error = json_response.get('error')
              if error:
                  raise BitstampError(error)
              elif json_response.get('status') == "error":
                  raise BitstampError(json_response.get('reason'))
  
          if return_json:
              if json_response is None:
                  raise BitstampError(
                      "Could not decode json for: " + response.text)
              return json_response
  
          return response
docs: Make a generic request, adding in any proxy defined by the instance.
  
          Raises a ``requests.HTTPError`` if the response status isn't 200, and
          raises a :class:`BitstampError` if the response contains a json encoded
          error message.