Ich knalle meinen Kopf gegen die Wand mit diesem. Ich habe jedes Beispiel versucht und jedes letzte Bit gelesen, das ich online über die grundlegende http-Autorisierung mit urllib2 finden kann, aber ich kann nicht herausfinden, was meinen spezifischen Fehler verursacht.
Zu der Frustration kommt hinzu, dass der Code nur für eine Seite und nicht für eine andere Seite funktioniert. Einloggen in www.mysite.com/adm geht absolut reibungslos. Es authentifiziert kein Problem. Aber wenn ich die Adresse zu "http://mysite.com/adm/items.php?n=201105&c=200" ändere, erhalte ich diesen Fehler:
%Vor%Die Suche nach google hat zu null Informationen über diesen Fehler geführt.
Das Adm ist eine Frameset-Seite, ich bin mir nicht sicher, ob das überhaupt relevant ist.
Hier ist der aktuelle Code:
%Vor%Dies ist nur eine der vielen Versionen, die ich ausprobiert habe. Ich habe jedes Beispiel von Urlib2 Missing Manual gefolgt, aber immer noch den gleichen Fehler erhalten.
Kann jemand darauf hinweisen, was ich falsch mache?
Vor ungefähr einem Jahr ging ich durch denselben Prozess und dokumentierte, wie ich das Problem gelöst habe - Der direkte und einfache Weg zur Authentifizierung und zum Standard. Wählen Sie, was Sie für richtig halten.
HTTP-Authentifizierung in Python
Es gibt eine erklärende Beschreibung im fehlenden urllib2-Dokument .
>Laufen Sie heute zu einem ähnlichen Problem. Ich verwendete die Standardauthentifizierung für die von mir entwickelte Website und konnte keine Benutzer authentifizieren.
Hier sind ein paar Dinge, die Sie verwenden können, um Ihr Problem zu debuggen:
Zusammenfassend lässt sich sagen, dass Ihre Anwendung zwar korrekt ist, Sie aber möglicherweise nicht die Standardkopfzeilen und den Statuscode für den Client zum Senden der Anmeldeinformationen zurückgeben. Verwenden Sie Ihre Debug-Tools, um herauszufinden, welche welche ist. Außerdem gibt es einen Debug-Modus für httplib2, setzen Sie einfach httplib2.debuglevel=1
, so dass Debug-Informationen auf der Standardausgabe ausgegeben werden. Dies ist viel hilfreicher als tcpdump zu verwenden, da es auf einer höheren Ebene ist.
Hoffe das hilft jemandem.
Aus dem von Ihnen geposteten HTML geht es nach wie vor davon aus, dass Sie sich erfolgreich authentifizieren, aber bei der Verarbeitung Ihrer POST-Anfrage später einen Fehler feststellen. Ich habe versucht, Ihre URL und fehlgeschlagen Authentifizierung, ich bekomme eine Standard 401 Seite.
In jedem Fall schlage ich vor, dass Sie erneut versuchen, Ihren Code auszuführen und dieselbe Operation manuell in Firefox auszuführen, nur diesmal mit Wireshark, um den Austausch zu erfassen. In beiden Fällen können Sie den vollständigen Text der HTTP-Anfrage und Antwort abrufen und die Unterschiede vergleichen. In den meisten Fällen führt das zu der Quelle des Fehlers, den Sie bekommen.
Ich fand auch, dass das Passwort nicht funktioniert (manchmal?). Das Hinzufügen des base64 user / pass headers gemäß dieser Antwort Ссылка hat für mich funktioniert. Ich greife auf die URL von jenkins wie folgt zu: http: /// job // lastCompletedBuild / testReport / api / python
Das funktioniert für mich:
%Vor%Dies funktioniert nicht für mich, Fehler 403 jedes Mal:
%Vor%