20

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?

asked Mar 23, 2012 at 12:27
0

2 Answers 2

33

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('https://paypal.com/')
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())
answered Mar 23, 2012 at 12:36
Sign up to request clarification or add additional context in comments.

Comments

3

instead of putrequest, you can use request

conn.request('GET', '/')
resp = conn.getresponse()
print(resp.read())
answered Mar 23, 2012 at 12:49

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.