我想在Python 3.2中通过HTTPS连接到网站。
我试过
conn = http.client.HTTPSConnection(urlStr, 8443)
conn.putrequest('GET', '/')
response = conn.getresponse()
print(response.read())
但我得到
http.client.ResponseNotReady: Request-started
任何人都知道问题是什么?
答案 0 :(得分:24)
首先,如果您只是想下载某些内容而不想要任何特殊的HTTP请求,则应使用urllib.request
代替http.client
。
import urllib.request
r = urllib.request.urlopen('https://paypal.com/')
print(r.read())
如果您真的想使用http.client,则必须在发送请求标头后致电endheaders
:
import http.client
conn = http.client.HTTPSConnection('paypal.com', 443)
conn.putrequest('GET', '/')
conn.endheaders() # <---
r = conn.getresponse()
print(r.read())
作为putrequest
/ endheaders
的快捷方式,您还可以使用request
方法,如下所示:
import http.client
conn = http.client.HTTPSConnection('paypal.com', 443)
conn.request('GET', '/') # <---
r = conn.getresponse()
print(r.read())
答案 1 :(得分:1)
而不是putrequest
,您可以使用request
conn.request('GET', '/')
resp = conn.getresponse()
print(resp.read())