2012-03-23 2 views
9

Я хотел бы подключиться к сайту через HTTPS в Python 3.2.HTTPS-запрос в Python

Я попытался

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

, но я получаю

http.client.ResponseNotReady: Request-started 

Кто знает, в чем проблема?

ответ

17

Прежде всего, если вы просто хотите что-то скачать и не хотите каких-либо специальных 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

вместо putrequest, вы можете использовать request

conn.request('GET', '/') 
resp = conn.getresponse() 
print(resp.read()) 
Смежные вопросы