HTTPS-запрос в Python - PullRequest
       1

HTTPS-запрос в Python

14 голосов
/ 23 марта 2012

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

Я пытался

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

, но я получил

    http.client.ResponseNotReady: Request-started

Кто-нибудь знает, чтопроблема?

Ответы [ 2 ]

24 голосов
/ 23 марта 2012

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

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

conn.request('GET', '/')
resp = conn.getresponse()
print(resp.read())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...