code: def _make_request(self, conf, post_params={}):
          
          endpoint, requires_auth = conf
  
          # setup the url and the request objects
          url = '%s%s.php' % (self.api_url, endpoint)
          log.debug('Setting url to %s' % url)
          request = urllib2.Request(url)
  
          # tack on authentication if needed
          log.debug('Post params: %s' % post_params)
          if requires_auth:
              post_params.update({
                  'user': self.username,
                  'pass': self.password
              })
  
          # url encode all parameters
          data = urlencode(post_params).encode('utf-8')
  
          # gimme some bitcoins!
          try:
              log.debug('Requesting data from %s' % url)
              response = urllib2.urlopen(request, data)
              return json.loads(response.read())
          except urllib2.URLError as e:
              log.debug('Full error: %s' % e)
              if hasattr(e, 'reason'):
                  self.log.error('Could not reach host. Reason: %s' % e.reason)
              elif hasattr(e, 'code'):
                  self.log.error('Could not fulfill request. Error Code: %s' % e.code)
              return None
docs: Make a request to the API and return data in a pythonic object