Python中的HTTPS请求

时间:2012-03-23 12:27:21

标签: python https

我想在Python 3.2中通过HTTPS连接到网站。

我试过

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

但我得到

    http.client.ResponseNotReady: Request-started

任何人都知道问题是什么?

2 个答案:

答案 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())