http.client
http client is very fast, but also low-level, and takes a few more lines of code than the others.
import http.client
import ssl
try:
conn = http.client.HTTPSConnection("www.hightail.com", port=443, timeout=5, context=ssl._create_unverified_context())
conn.request("GET", "/en_US/theme_default/images/hightop_250px.png")
resp = conn.getresponse()
if 301 <= resp.status <= 302:
print("Status: {}\nLocation: {}\n".format(resp.status,resp.headers['Location']))
else:
print("Status: {}\nContent-Type: {}\n".format(resp.status, resp.headers['Content-Type']))
except Exception as e:
print("Status: 500\nContent-Type: text/plain\n\n{}".format(e))
Requests
Requests is a 3rd party, high level library. It does have a simpler format to use, but is much slower than http.client and is not natively supported on AWS Lambda.
import requests
url = "http://www.yousendit.com"
try:
resp = requests.get(url, params = {}, timeout = 5, allow_redirects = False)
if 301 <= resp.status_code <= 302:
print("Status: {}\nLocation: {}\n".format(resp.status_code,resp.headers['Location']))
else:
print("Status: {}\nContent-Type: {}\n".format(resp.status_code, resp.headers['Content-Type']))
except Exception as e:
print("Status: 500\nContent-Type: text/plain\n\n{}".format(e))