code: def _make_request(self, request):
          
          # TODO: I'm sure all kinds of error checking needs to go here
          try:
              response_raw = urllib2.urlopen(request)
          except urllib2.HTTPError, e:
              print e.read()
              raise
  
          response_str = response_raw.read()
          response = json.loads(response_str)
  
          self._last_request = request
          self._last_response = response_raw
          self._last_response_str = response_str
          return response
docs: Does the magic of actually sending the request and parsing the response