Https Request in Python

Https Request in Python

I would like to connect to a site via HTTPS in Python 3.2.

I tried

    conn = http.client.HTTPSConnection(urlStr, 8443)
    conn.putrequest('GET', '/')
    response = conn.getresponse()  
    print(response.read())

but I get

    http.client.ResponseNotReady: Request-started

Anyone know what the problem is?

0

2 Answers

First of all, if you just want to download something and don't want any special HTTP requests, you should use urllib.request instead of http.client.

import urllib.request
r = urllib.request.urlopen(')
print(r.read())

If you really want to use http.client, you must call endheaders after you send the request headers:

import http.client
conn = http.client.HTTPSConnection('paypal.com', 443)
conn.putrequest('GET', '/')
conn.endheaders() # <---
r = conn.getresponse()
print(r.read())

As a shortcut to putrequest/endheaders, you can also use the request method, like this:

import http.client
conn = http.client.HTTPSConnection('paypal.com', 443)
conn.request('GET', '/') # <---
r = conn.getresponse()
print(r.read())
0

instead of putrequest, you can use request

conn.request('GET', '/')
resp = conn.getresponse()
print(resp.read())

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

James H. Sterling
Author

James H. Sterling

James Sterling reports on renewable energy developments, climate policy, ecological conservation, and green tech innovations around the globe.