1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
#!/usr/bin/env python
from __future__ import print_function
"""Demonstrations of M2Crypto.httpslib.
Copyright (c) 1999-2003 Ng Pheng Siong. All rights reserved."""
import sys
from M2Crypto import Rand, SSL, httpslib, threading
def test_httpslib():
ctx = SSL.Context("sslv23")
ctx.load_cert_chain("client.pem")
ctx.load_verify_locations("ca.pem", "")
ctx.set_verify(SSL.verify_peer, 10)
ctx.set_info_callback()
h = httpslib.HTTPSConnection("localhost", 19443, ssl_context=ctx)
h.set_debuglevel(1)
h.putrequest("GET", "/")
h.putheader("Accept", "text/html")
h.putheader("Accept", "text/plain")
h.putheader("Connection", "close")
h.endheaders()
resp = h.getresponse()
f = resp.fp
c = 0
while 1:
# Either of following two works.
# data = f.readline(4096)
data = resp.read(4096)
if not data:
break
c = c + len(data)
# print(data)
sys.stdout.write(data)
sys.stdout.flush()
f.close()
h.close()
if __name__ == "__main__":
Rand.load_file("../randpool.dat", -1)
# threading.init()
test_httpslib()
# threading.cleanup()
Rand.save_file("../randpool.dat")
|