Authentifizierung mit urllib3
Ich versuche eine Verbindung zu einer Webseite mit urllib3. Der code ist unten zu finden.
import urllib3
http=urllib3.PoolManager()
fields={'username':'abc','password':'xyz'}
r=http.request('GET',url,fields)
Wenn wir davon ausgehen, dass die url ist etwas Webseite welche Anforderungen werden authentifiziert mit Benutzername und Kennwort, bin ich mit dem richtigen code zu authentifizieren ?
Ich Tat dies mit urllib2 sehr bequem, aber ich war nicht in der Lage, das gleiche zu tun mit urllib3.
Vielen Dank
InformationsquelleAutor kich | 2012-07-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorausgesetzt, Sie versuchen zu tun,Basic-Authentifizierung, dann müssen Sie den Benutzernamen und das Kennwort codiert, in einer
authorization
header. Hier ist ein Weg zu tun, mit der urllib3.util.make_headers Helfer:Ich denke, ist wie folgt: Header = {'Genehmigung':'Basic - %s' % b64encode('user:pass'), 'Cache-Control':'no-cache,max-age=0', 'Pragma':'no-cache'}
Unsere make_headers Helfer nicht über einen Modus zum ändern der cache-control. Ich würde +1 für das hinzufügen von etwas wie das, wenn Sie wäre daran interessiert, einen PR. 🙂 (Ein Thema eröffnet hier github.com/shazow/urllib3/issues/393)
könnte versuchen
headers = {'Cache-Control': 'no-cache,max-age=0',...}
dann verwendenupdate
zu ziehen-inmake_headers
generiert Wörterbuch, z.B.headers.update(urllib3.util.make_headers(basic_auth = 'abc:123'))
ich habe diesen Fehler :
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'))
InformationsquelleAutor shazow