Python http.client.HTTPSConnection() Examples
The following are 30
code examples of http.client.HTTPSConnection().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
http.client
, or try the search function
.
Example #1
Source File: api.py From evernote-telegram-bot with MIT License | 690 votes |
def __make_request(self, url, params): parse_result = urlparse(url) hostname = parse_result.netloc context = ssl.SSLContext() conn = HTTPSConnection(hostname, None, context=context) conn.connect() body = urlencode(params) headers = { 'Content-Type': 'application/x-www-form-urlencoded', 'Content-Length': len(body), } request_url = f"{parse_result.path}?{parse_result.query}" try: conn.request("POST", request_url, body, headers) response = conn.getresponse() data = response.read() finally: conn.close() return data
Example #2
Source File: L.E.S.M.A. - Fabrica de Noobs Speedtest.py From L.E.S.M.A with Apache License 2.0 | 6 votes |
def validate_optional_args(args): """Check if an argument was provided that depends on a module that may not be part of the Python standard library. If such an argument is supplied, and the module does not exist, exit with an error stating which module is missing. """ optional_args = { 'json': ('json/simplejson python module', json), 'secure': ('SSL support', HTTPSConnection), } for arg, info in optional_args.items(): if getattr(args, arg, False) and info[1] is None: raise SystemExit('%s is not installed. --%s is ' 'unavailable' % (info[0], arg))
Example #3
Source File: fishnet.py From irwin with GNU Affero General Public License v3.0 | 6 votes |
def http(method, url, body=None, headers=None): url_info = urlparse.urlparse(url) if url_info.scheme == "https": con = httplib.HTTPSConnection(url_info.hostname, url_info.port or 443) else: con = httplib.HTTPConnection(url_info.hostname, url_info.port or 80) con.request(method, url_info.path, body, headers) response = con.getresponse() try: if 400 <= response.status < 500: raise HttpClientError(response.status, response.reason, response.read()) elif 500 <= response.status < 600: raise HttpServerError(response.status, response.reason, response.read()) else: yield response finally: con.close()
Example #4
Source File: utils.py From custom-resource-helper with Apache License 2.0 | 6 votes |
def _send_response(response_url, response_body): try: json_response_body = json.dumps(response_body) except Exception as e: msg = "Failed to convert response to json: {}".format(str(e)) logger.error(msg, exc_info=True) response_body = {'Status': 'FAILED', 'Data': {}, 'Reason': msg} json_response_body = json.dumps(response_body) logger.debug("CFN response URL: {}".format(response_url)) logger.debug(json_response_body) headers = {'content-type': '', 'content-length': str(len(json_response_body))} split_url = urlsplit(response_url) host = split_url.netloc url = urlunsplit(("", "", *split_url[2:])) while True: try: connection = HTTPSConnection(host) connection.request(method="PUT", url=url, body=json_response_body, headers=headers) response = connection.getresponse() logger.info("CloudFormation returned status code: {}".format(response.reason)) break except Exception as e: logger.error("Unexpected failure sending response to CloudFormation {}".format(e), exc_info=True) time.sleep(5)
Example #5
Source File: common_token.py From inference-model-manager with Apache License 2.0 | 6 votes |
def get_dex_auth_url(address, port, ca_cert_path=None, proxy_host=None, proxy_port=None, insecure=False, offline=False): conn = None context = create_security_context(ca_cert_path, insecure=insecure) if proxy_host: conn = httplib.HTTPSConnection(proxy_host, proxy_port, context=context) conn.set_tunnel(address, port) else: conn = httplib.HTTPSConnection(address, port, context=context) url = "/authenticate?offline=True" if offline else "/authenticate" conn.request("GET", url) r1 = conn.getresponse() dex_auth_url = r1.getheader('location') if dex_auth_url is None: print("Can`t get dex url.") sys.exit() return dex_auth_url
Example #6
Source File: common_token.py From inference-model-manager with Apache License 2.0 | 6 votes |
def get_dex_auth_token(address, port, auth_dict, ca_cert_path, proxy_host=None, proxy_port=None, insecure=False, offline=False): conn = None context = create_security_context(ca_cert_path, insecure=insecure) if proxy_host: conn = httplib.HTTPSConnection(proxy_host, proxy_port, context=context) conn.set_tunnel(address, port) else: conn = httplib.HTTPSConnection(address, port, context=context) headers = {"Content-type": "application/json", "Accept": "text/plain"} url = "/authenticate/token?offline=True" if offline else "/authenticate/token" conn.request("POST", url, json.dumps(auth_dict), headers) response = conn.getresponse() data = response.read() if response.status == 200: dict_data = json.loads(data.decode('utf-8')) return dict_data['data']['token'] else: print("Error occurred while trying to get token.") sys.exit()
Example #7
Source File: vngate.py From vnpy_crypto with MIT License | 6 votes |
def httpPost(self, url, resource, params ): headers = { "Accept": "application/json", 'Content-Type': 'application/x-www-form-urlencoded', "User-Agent": "Chrome/39.0.2171.71", "KEY":self.accessKey, "SIGN":self.getSign(params, self.secretKey) } conn = httplib.HTTPSConnection(url, timeout=10 ) tempParams = urllib.parse.urlencode(params) if params else '' conn.request("POST", resource, tempParams, headers) response = conn.getresponse() data = response.read().decode('utf-8') conn.close() return json.loads(data) #----------------------------------------------------------------------
Example #8
Source File: speedtest.py From shadowsocks with Apache License 2.0 | 6 votes |
def validate_optional_args(args): """Check if an argument was provided that depends on a module that may not be part of the Python standard library. If such an argument is supplied, and the module does not exist, exit with an error stating which module is missing. """ optional_args = { 'json': ('json/simplejson python module', json), 'secure': ('SSL support', HTTPSConnection), } for arg, info in optional_args.items(): if getattr(args, arg, False) and info[1] is None: raise SystemExit('%s is not installed. --%s is ' 'unavailable' % (info[0], arg))
Example #9
Source File: connection.py From oneview-redfish-toolkit with Apache License 2.0 | 6 votes |
def request_oneview(oneview_ip, rest_url): try: connection = HTTPSConnection( oneview_ip, context=ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)) connection.request( method='GET', url=rest_url, headers={'Content-Type': 'application/json', 'X-API-Version': config.get_api_version()} ) response = connection.getresponse() if response.status != status.HTTP_200_OK: message = "OneView is unreachable at {}".format( oneview_ip) raise OneViewRedfishException(message) text_response = response.read().decode('UTF-8') json_response = json.loads(text_response) return json_response finally: connection.close()
Example #10
Source File: request_helper.py From Moodle-Downloader-2 with GNU General Public License v3.0 | 6 votes |
def __init__(self, moodle_domain: str, moodle_path: str = '/', token: str = '', skip_cert_verify=False): """ Opens a connection to the Moodle system """ if skip_cert_verify: context = ssl._create_unverified_context() else: context = ssl.create_default_context(cafile=certifi.where()) self.connection = HTTPSConnection(moodle_domain, context=context) self.token = token self.moodle_domain = moodle_domain self.moodle_path = moodle_path RequestHelper.stdHeader = { 'User-Agent': ('Mozilla/5.0 (X11; Linux x86_64)' + ' AppleWebKit/537.36 (KHTML, like Gecko)' + ' Chrome/78.0.3904.108 Safari/537.36'), 'Content-Type': 'application/x-www-form-urlencoded' }
Example #11
Source File: test_httplib.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_networked_noverification(self): # Switch off cert verification import ssl support.requires('network') with support.transient_internet('self-signed.pythontest.net'): context = ssl._create_unverified_context() h = client.HTTPSConnection('self-signed.pythontest.net', 443, context=context) h.request('GET', '/') resp = h.getresponse() h.close() self.assertIn('nginx', resp.getheader('server'))
Example #12
Source File: common.py From TuShare with BSD 3-Clause "New" or "Revised" License | 5 votes |
def __init__(self , token): self.token = token self.httpClient = HTTPSConnection(vs.HTTP_URL, vs.HTTP_PORT)
Example #13
Source File: bandwidth_test.py From dataserv-client with MIT License | 5 votes |
def getBestServer(servers): """Perform a speedtest.net latency request to determine which speedtest.net server has the lowest latency """ results = {} for server in servers: cum = [] url = '%s/latency.txt' % os.path.dirname(server['url']) urlparts = urlparse(url) for i in range(0, 3): try: if urlparts[0] == 'https': h = HTTPSConnection(urlparts[1]) else: h = HTTPConnection(urlparts[1]) headers = {'User-Agent': user_agent} start = timeit.default_timer() h.request("GET", urlparts[2], headers=headers) r = h.getresponse() total = (timeit.default_timer() - start) except (HTTPError, URLError, socket.error): cum.append(3600) continue text = r.read(9) if int(r.status) == 200 and text == 'test=test'.encode(): cum.append(total) else: cum.append(3600) h.close() avg = round((sum(cum) / 6) * 1000, 3) results[avg] = server fastest = sorted(results.keys())[0] best = results[fastest] best['latency'] = fastest return best
Example #14
Source File: patch.py From aws-xray-sdk-python with Apache License 2.0 | 5 votes |
def _send_request(wrapped, instance, args, kwargs): def decompose_args(method, url, body, headers, encode_chunked=False): # skip httplib tracing for SDK built-in centralized sampling pollers if (('/GetSamplingRules' in args or '/SamplingTargets' in args) and type(instance).__name__ == 'botocore.awsrequest.AWSHTTPConnection'): return wrapped(*args, **kwargs) # Only injects headers when the subsegment for the outgoing # calls are opened successfully. subsegment = None try: subsegment = xray_recorder.current_subsegment() except SegmentNotFoundException: pass if subsegment: inject_trace_header(headers, subsegment) if issubclass(instance.__class__, urllib3.connection.HTTPSConnection): ssl_cxt = getattr(instance, 'ssl_context', None) elif issubclass(instance.__class__, httplib.HTTPSConnection): ssl_cxt = getattr(instance, '_context', None) else: # In this case, the patcher can't determine which module the connection instance is from. # We default to it to check ssl_context but may be None so that the default scheme would be # (and may falsely be) http. ssl_cxt = getattr(instance, 'ssl_context', None) scheme = 'https' if ssl_cxt and type(ssl_cxt).__name__ == 'SSLContext' else 'http' xray_url = '{}://{}{}'.format(scheme, instance.host, url) xray_data = _XRay_Data(method, instance.host, xray_url) setattr(instance, _XRAY_PROP, xray_data) # we add a segment here in case connect fails return xray_recorder.record_subsegment( wrapped, instance, args, kwargs, name=get_hostname(xray_data.url), namespace='remote', meta_processor=http_send_request_processor ) return decompose_args(*args, **kwargs)
Example #15
Source File: WebUtils.py From alipay-sdk-python with Apache License 2.0 | 5 votes |
def get_http_connection(url, query_string, timeout): url_parse_result = urlparse.urlparse(url) host = url_parse_result.hostname port = 80 connection = httplib.HTTPConnection(host=host, port=port, timeout=timeout) if url.find("https") == 0: port = 443 connection = httplib.HTTPSConnection(host=host, port=port, timeout=timeout) url = url_parse_result.scheme + "://" + url_parse_result.hostname if url_parse_result.port: url += url_parse_result.port url += url_parse_result.path url += ('?' + query_string) return url, connection
Example #16
Source File: cloud.py From pyShelly with MIT License | 5 votes |
def _post(self, path, params=None, retry=0): with self.http_lock: while datetime.now() - self._last_post < timedelta(seconds=2): time.sleep(1) self._last_post = datetime.now() json_body = None params = params or {} try: LOGGER.debug("POST to Shelly Cloud") conn = httplib.HTTPSConnection(self.server, timeout=15) headers = {'Content-Type' : 'application/x-www-form-urlencoded'} params["auth_key"] = self.auth_key conn.request("POST", "/" + path, urllib.parse.urlencode(params), headers) resp = conn.getresponse() if resp.status == 200: body = resp.read() json_body = json.loads(s(body)) else: if retry < 2: return self._post(path, params, retry + 1) else: LOGGER.warning("Error receive JSON from cloud, %s : %s", \ resp.reason, resp.read()) except Exception as ex: LOGGER.warning("Error connect cloud, %s", ex) finally: if conn: conn.close() return json_body
Example #17
Source File: views.py From exist with MIT License | 5 votes |
def expand(url): o = urlparse(url) con = HTTPSConnection(o.netloc) con.request('HEAD', o.path) res = con.getresponse() if res.getheader('location') == None: return url return res.getheader('location')
Example #18
Source File: test_httplib.py From aws-xray-sdk-python with Apache License 2.0 | 5 votes |
def _do_req(url, method='GET', use_https=True): parts = urlparse(url) host, _, port = parts.netloc.partition(':') if port == '': port = None if use_https: conn = httplib.HTTPSConnection(parts.netloc, port) else: conn = httplib.HTTPConnection(parts.netloc, port) path = '{}?{}'.format(parts.path, parts.query) if parts.query else parts.path conn.request(method, path) resp = conn.getresponse()
Example #19
Source File: test_httplib.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_networked(self): # Default settings: requires a valid cert from a trusted CA import ssl support.requires('network') with support.transient_internet('self-signed.pythontest.net'): h = client.HTTPSConnection('self-signed.pythontest.net', 443) with self.assertRaises(ssl.SSLError) as exc_info: h.request('GET', '/') self.assertEqual(exc_info.exception.reason, 'CERTIFICATE_VERIFY_FAILED')
Example #20
Source File: test_httplib.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_attributes(self): # simple test to check it's storing the timeout h = client.HTTPSConnection(HOST, TimeoutTest.PORT, timeout=30) self.assertEqual(h.timeout, 30)
Example #21
Source File: test_httplib.py From ironpython3 with Apache License 2.0 | 5 votes |
def setUp(self): if not hasattr(client, 'HTTPSConnection'): self.skipTest('ssl support required')
Example #22
Source File: test_httplib.py From ironpython3 with Apache License 2.0 | 5 votes |
def testHTTPSConnectionSourceAddress(self): self.conn = client.HTTPSConnection(HOST, self.port, source_address=('', self.source_port)) # We don't test anything here other the constructor not barfing as # this code doesn't deal with setting up an active running SSL server # for an ssl_wrapped connect() to actually return from.
Example #23
Source File: sockshandler.py From script.elementum.burst with Do What The F*ck You Want To Public License | 5 votes |
def __init__(self, proxytype, proxyaddr, proxyport=None, rdns=True, username=None, password=None, *args, **kwargs): self.proxyargs = (proxytype, proxyaddr, proxyport, rdns, username, password) httplib.HTTPSConnection.__init__(self, *args, **kwargs)
Example #24
Source File: client.py From sunnyportal-py with GNU General Public License v3.0 | 5 votes |
def do_request(self, request): conn = http.HTTPSConnection( self.server, self.port, context=self.create_ssl_context() ) return request.perform(conn)
Example #25
Source File: test_httplib.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_networked_good_cert(self): # We feed the server's cert as a validating cert import ssl support.requires('network') with support.transient_internet('self-signed.pythontest.net'): context = ssl.SSLContext(ssl.PROTOCOL_TLSv1) context.verify_mode = ssl.CERT_REQUIRED context.load_verify_locations(CERT_selfsigned_pythontestdotnet) h = client.HTTPSConnection('self-signed.pythontest.net', 443, context=context) h.request('GET', '/') resp = h.getresponse() server_string = resp.getheader('server') h.close() self.assertIn('nginx', server_string)
Example #26
Source File: authproxy.py From virtualchain with GNU General Public License v3.0 | 5 votes |
def __init__(self, service_url, service_name=None, timeout=HTTP_TIMEOUT, connection=None, legacy=False): self.__service_url = service_url self.__service_name = service_name self.__url = urlparse.urlparse(service_url) self.__legacy = legacy assert self.__url.port, 'Bitcoin URL requires a port' port = self.__url.port (user, passwd) = (self.__url.username, self.__url.password) try: user = user.encode('utf8') except AttributeError: pass try: passwd = passwd.encode('utf8') except AttributeError: pass authpair = user + b':' + passwd self.__auth_header = b'Basic ' + base64.b64encode(authpair) self.__timeout = timeout if connection: # Callables re-use the connection of the original proxy self.__conn = connection elif self.__url.scheme == 'https': self.__conn = httplib.HTTPSConnection(self.__url.hostname, port, timeout=timeout) else: self.__conn = httplib.HTTPConnection(self.__url.hostname, port, timeout=timeout)
Example #27
Source File: test_httplib.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_networked_bad_cert(self): # We feed a "CA" cert that is unrelated to the server's cert import ssl support.requires('network') with support.transient_internet('self-signed.pythontest.net'): context = ssl.SSLContext(ssl.PROTOCOL_TLSv1) context.verify_mode = ssl.CERT_REQUIRED context.load_verify_locations(CERT_localhost) h = client.HTTPSConnection('self-signed.pythontest.net', 443, context=context) with self.assertRaises(ssl.SSLError) as exc_info: h.request('GET', '/') self.assertEqual(exc_info.exception.reason, 'CERTIFICATE_VERIFY_FAILED')
Example #28
Source File: test_httplib.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_local_bad_hostname(self): # The (valid) cert doesn't validate the HTTP hostname import ssl server = self.make_server(CERT_fakehostname) context = ssl.SSLContext(ssl.PROTOCOL_TLSv1) context.verify_mode = ssl.CERT_REQUIRED context.check_hostname = True context.load_verify_locations(CERT_fakehostname) h = client.HTTPSConnection('localhost', server.port, context=context) with self.assertRaises(ssl.CertificateError): h.request('GET', '/') # Same with explicit check_hostname=True h = client.HTTPSConnection('localhost', server.port, context=context, check_hostname=True) with self.assertRaises(ssl.CertificateError): h.request('GET', '/') # With check_hostname=False, the mismatching is ignored context.check_hostname = False h = client.HTTPSConnection('localhost', server.port, context=context, check_hostname=False) h.request('GET', '/nonexistent') resp = h.getresponse() self.assertEqual(resp.status, 404) # The context's check_hostname setting is used if one isn't passed to # HTTPSConnection. context.check_hostname = False h = client.HTTPSConnection('localhost', server.port, context=context) h.request('GET', '/nonexistent') self.assertEqual(h.getresponse().status, 404) # Passing check_hostname to HTTPSConnection should override the # context's setting. h = client.HTTPSConnection('localhost', server.port, context=context, check_hostname=True) with self.assertRaises(ssl.CertificateError): h.request('GET', '/')
Example #29
Source File: test_httplib.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_local_good_hostname(self): # The (valid) cert validates the HTTP hostname import ssl server = self.make_server(CERT_localhost) context = ssl.SSLContext(ssl.PROTOCOL_TLSv1) context.verify_mode = ssl.CERT_REQUIRED context.load_verify_locations(CERT_localhost) h = client.HTTPSConnection('localhost', server.port, context=context) h.request('GET', '/nonexistent') resp = h.getresponse() self.assertEqual(resp.status, 404)
Example #30
Source File: test_httplib.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_local_unknown_cert(self): # The custom cert isn't known to the default trust bundle import ssl server = self.make_server(CERT_localhost) h = client.HTTPSConnection('localhost', server.port) with self.assertRaises(ssl.SSLError) as exc_info: h.request('GET', '/') self.assertEqual(exc_info.exception.reason, 'CERTIFICATE_VERIFY_FAILED')