2012-03-23 24 views
9

Me gustaría conectarme a un sitio a través de HTTPS en Python 3.2.Solicitud de HTTPS en Python

me trataron

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

pero me da

http.client.ResponseNotReady: Request-started 

Alguien sabe cuál es el problema?

Respuesta

17

En primer lugar, si solo desea descargar algo y no desea ninguna solicitud HTTP especial, debe usar urllib.request en lugar de http.client.

import urllib.request 
r = urllib.request.urlopen('https://paypal.com/') 
print(r.read()) 

Si realmente desea utilizar http.client, debe llamar endheaders después de enviar las cabeceras de petición:

import http.client 
conn = http.client.HTTPSConnection('paypal.com', 443) 
conn.putrequest('GET', '/') 
conn.endheaders() # <--- 
r = conn.getresponse() 
print(r.read()) 

Como un acceso directo a putrequest/endheaders, también se puede utilizar el método request , de esta manera:

import http.client 
conn = http.client.HTTPSConnection('paypal.com', 443) 
conn.request('GET', '/') # <--- 
r = conn.getresponse() 
print(r.read()) 
1

en lugar de putrequest, puede utilizar request

conn.request('GET', '/') 
resp = conn.getresponse() 
print(resp.read()) 
Cuestiones relacionadas