2010-07-28 26 views
5

cómo y con qué biblioteca python es posible hacer una httprequest (https) con un usuario: contraseña o un token?python solicitud http con token

básicamente el equivalente a curl -u user:pwd https://www.mysite.com/

gracias

Respuesta

0

urllib2.HTTPSHandler clase Una clase para manejar la apertura de URLs HTTPS.

21.6.7. Objetos HTTPPasswordMgr Estos métodos están disponibles en los objetos HTTPPasswordMgr y HTTPPasswordMgrWithDefaultRealm.

HTTPPasswordMgr.add_password (realm, uri, user, passwd) uri puede ser un URI único o una secuencia de URI. El dominio, el usuario y la contraseña deben ser cadenas. Esto hace que (usuario, contraseña) se use como tokens de autenticación cuando se proporciona la autenticación para el dominio y un URI súper de cualquiera de los URI dados. HTTPPasswordMgr.find_user_password (realm, authuri) Obtiene el usuario/contraseña para el reino y el URI dados, en su caso. Este método devolverá (Ninguno, Ninguno) si no hay un usuario/contraseña coincidente.

Para objetos HTTPPasswordMgrWithDefaultRealm, se buscará el dominio Ninguno si el reino dado no tiene un usuario/contraseña coincidente.

+0

gracias ... eso es todo – aschmid00

1

Si necesita hacer peticiones seguras para subprocesos, utilice pycurl (la interfaz de Python para rizar):

import pycurl 
from StringIO import StringIO 

response_buffer = StringIO() 
curl = pycurl.Curl() 

curl.setopt(curl.URL, "https://www.yoursite.com/") 

# Setup the base HTTP Authentication. 
curl.setopt(curl.USERPWD, '%s:%s' % ('youruser', 'yourpassword')) 

curl.setopt(curl.WRITEFUNCTION, response_buffer.write) 

curl.perform() 
curl.close() 

response_value = response_buffer.getvalue() 

De lo contrario, utilice urllib2 (ver otras respuestas para más información), ya que es incorporado y la interfaz es mucho más limpia.

4

uso peticiones pitón: HTTP para los seres humanos

import requests 

requests.get("https://www.mysite.com/", auth=('username','pwd')) 

también se puede utilizar autenticación digerir ...

+0

sí, eso es lo que debería haber sido siempre! impresionante lib! – Rok

+0

solicitudes de esperanza se agregarán a python lib estándar en algún punto – locojay