Cookies werden von der Website nicht verwendet.
Da ich hier trotzdem nicht so richtig weiter komme, frag ich mal anders:
Das sind die Header, die mir LiveHTTPHeaders (Firefox AddOn) beim Abschicken des Formulars ausgibt:
Code: Alles auswählen
http://192.168.1.192/foo.cmd
POST /foo.cmd HTTP/1.1
Host: 192.168.1.192
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9) Gecko/2008052906 Firefox/3.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://192.168.1.192/bar.htm
Authorization: Basic XXXXXXXXXXXXXXXXXX==
Content-Type: application/x-www-form-urlencoded
Content-Length: 5
NUM=1
HTTP/1.x 200 OK
Content-Type: text/html
Cache-Control: no-cache
Pragma: no-cache
Ich habe also zuerst
http://192.168.1.192/bar.htm besucht (Referrer) und mich dort authentifizieren müssen. Das klappt auch mit Python, weil der Realm dort ein statischer String ist. Dann schicke ich von dort aus ein HTML-Formular über POST an
http://192.168.1.192/foo.cmd ab (keine Ahnung, wieso das "cmd" heißt). Das scheitert bei Python mit 401 Error. Die von LiveHTTPHeaders aufgezeichneten Headerdaten liefern keine Infos über den benutzen Realm. Firefox benutzt intern wahrscheinlich eine Art Passwortmanager und verwendet die Zugangsdaten von bar.html auch für foo.cmd. Wenn ich das in Python versuche, scheitere ich.
Vielleicht muss ich den vorherigen Schritt über bar.htm gar nicht gehen. Vielleicht würde es auch klappen, wenn ich das Formular in Python nachbilde und es inkl. Authentifizierung direkt an foo.cmd schicke? Kann ich die Authentifizerung nicht auch allein über Header abwickeln? Hat jemand ein Beispiel dafür... das würde mich sicher weiter bringen.