def _TokenRequest(self, request): """Make a requst to this client's provider's token endpoint. Args: request: A dict with the request parameteres. Returns: A tuple (response, error) where, - response is the parsed JSON response received from the token endpoint, or None if no parseable response was received, and - error is None if the request succeeded or an Exception if an error occurred. """ body = urllib.urlencode(request) LOG.debug('_TokenRequest request: %s', body) response = None try: request = fancy_urllib.FancyRequest(self.provider.token_uri, data=body) if self._proxy: request.set_proxy(self._proxy, 'http') request.set_ssl_info(ca_certs=self.ca_certs_file) result = self.url_opener.open(request) resp_body = result.read() LOG.debug('_TokenRequest response: %s', resp_body) except urllib2.HTTPError, e: try: response = json.loads(e.read()) except: pass return (response, e)
def UrlOpen(url): request = fancy_urllib.FancyRequest(url) ca_certs = os.path.join(SCRIPT_DIR, 'cacerts.txt') request.set_ssl_info(ca_certs=ca_certs) url_opener = urllib2.build_opener(fancy_urllib.FancyProxyHandler(), fancy_urllib.FancyRedirectHandler(), fancy_urllib.FancyHTTPSHandler()) return url_opener.open(request)