l'authentification avec urllib3
Je suis en train d'essayer de se connecter à une page web à l'aide de urllib3. Le code est fourni ci-dessous.
import urllib3
http=urllib3.PoolManager()
fields={'username':'abc','password':'xyz'}
r=http.request('GET',url,fields)
Si nous supposons que l'url est certaine page web qui doit être authentifié en utilisant le nom d'utilisateur et le mot de passe, suis-je utiliser le bon code pour authentifier ?
J'ai fait cela en utilisant des urllib2 très confortablement, mais je n'étais pas capable de faire la même chose en utilisant urllib3.
Merci Beaucoup
OriginalL'auteur kich | 2012-07-04
Vous devez vous connecter pour publier un commentaire.
En supposant que vous essayez de faire L'Authentification De Base, alors vous avez besoin de mettre le nom d'utilisateur et le mot de passe encodé dans un
authorization
en-tête. Voici un moyen de le faire en utilisant les urllib3.util.make_headers helper:Je suppose que c'est comme ceci: headers = {'Autorisation':'Base %s' % b64encode('user:pass'), 'Cache-Control':'no-cache,max-age=0', 'Pragma':'no-cache'}
Notre make_headers aides n'ont pas un mode pour modifier le contrôle de la mémoire cache. Je serais +1 pour l'ajout de quelque chose de ce genre si vous seriez intéressé à faire un RP. 🙂 (Il a ouvert un sujet ici github.com/shazow/urllib3/issues/393)
pourrait essayer
headers = {'Cache-Control': 'no-cache,max-age=0',...}
ensuite utiliserupdate
à la traction dansmake_headers
généré dictionnaire, par exemple,headers.update(urllib3.util.make_headers(basic_auth = 'abc:123'))
j'ai eu cette erreur :
HTTPConnectionPool(host='0.0.0.0', port=5555): Max retries exceeded with url: /dashboard?json=1 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f166f8daa20>: Failed to establish a new connection: [Errno 111] Connection refused'))
OriginalL'auteur shazow