Autor |
Beitrag |
bruce185 
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: Fr 24.12.10 03:05
Hallo nochmal,
kann es Vielleicht daran liegen, dass ich keine Cookies gesetzt habe beim Login und deswegen immer die Meldung bekomme "Die E-Mail-Adresse oder das Kennwort ist falsch. Wiederholen Sie den Vorgang."?
Edit: Weil durch die Weiterleitung verliere ich doch wieder die Logindaten wenn keine Cookies gesetzt sind oder?
MfG
|
|
bruce185 
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: Do 30.12.10 21:27
Hallo nochmal,
ich hab mal testhalber versucht mich bei wer-kennt-wen.de einzuloggen, da diese ja auch über SSL verbindung funktioniert.
Alles funktioniert soweil, nur ab dem zweiten aufruf von IdHTTP.Get oder IdHTTP.Post bekomme ich folgende fehlermeldung:
Delphi-Quelltext 1:
| HTTP/1.0 403 Forbidden. |
Wie kann ich das Problem umgehen?
Danke schonmal.
MfG
|
|
bruce185 
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: Fr 31.12.10 18:19
Weiss denn keiner ne lösung?
Ich denke mal, weil IdHTTP das Protokoll HTTP/1.0 verwendet, wie kann ich Protokoll HTTP/1.1 verwenden?
MfG
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 31.12.10 19:14
bruce185 hat folgendes geschrieben : | Ich denke mal, weil IdHTTP das Protokoll HTTP/1.0 verwendet, wie kann ich Protokoll HTTP/1.1 verwenden? |
Wenn du in die Statuscodedefinitionen des W3C geschaut hättest, dann hättest du dort gelesen, dass das damit nichts zu tun hat. Der Server hat die Anfrage durchaus verstanden, er weigert sich aber. Weil die Autorisation fehlt. Und dieser Statuscode sagt, dass eine Standardauthentifizierung hier nicht ausreicht. Klar, es muss ja auch ein Login erfolgen.
Heißt:
Du rufst das Seiten auf, die bereits vorher einen Login erfordern.
|
|
bruce185 
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: Fr 31.12.10 19:58
Danke Dir.
Aber irgendwas stimmt da nicht, hab das mal so versucht:
Delphi-Quelltext 1: 2: 3:
| Quelltext := IdHTTP.Post('https://secure.wer-kennt-wen.de/login/index',Params); Quelltext := IdHTTP.Get('http://www.wer-kennt-wen.de'); Quelltext := IdHTTP.Post('https://secure.wer-kennt-wen.de/login/index',Params); |
damit ging es einmal, nachdem ich mein Programm nochmal neu geöffnet habe und nochmal versucht habe, dann bekomme ich wieder diesen fehler.
MfG
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 31.12.10 20:02
Ich müsste mir das irgendwann mal anschauen, aber ich habe zu wenig Zeit. Fehlen tut da ja noch die Behandlung des Inhalts. Nacheinander so aufrufen geht nicht immer, weil da manchmal Session-IDs oder so benötigt werden usw.
|
|
bruce185 
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: Fr 31.12.10 20:43
Danke.
Werden die Sessions nicht automatisch hinzugefügt?
Hier mal die Postdaten aus FireFox:
Quelltext 1: 2: 3: 4: 5:
| loginName ***************** pass ***************** x 30 y 7 logIn 1 |
Request Header:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| (Request-Zeile) POST /login/index HTTP/1.1 Host secure.wer-kennt-wen.de User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.13) Gecko/20101203 YFF35 Firefox/3.6.13 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 115 Connection keep-alive Referer http://www.wer-kennt-wen.de/ Cookie __utma=171430438.851816188.1293630997.1293741758.1293819175.5; __utmz=171430438.1293630997.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); WKWSID=1203; WKWSESSID=32016f562ac66dd9c3719c040163f6c1; __utmb=171430438.1.10.1293819175; __utmc=171430438; __utmv= Content-Type application/x-www-form-urlencoded Content-Length 65 |
Response Header:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| (Status-Zeile) HTTP/1.1 302 Found Server nginx Date Fri, 31 Dec 2010 18:13:09 GMT Content-Type text/html Connection keep-alive P3P CP="CAO OUR" Expires Thu, 19 Nov 1981 08:52:00 GMT Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma no-cache Set-Cookie WKWSESSID=2dd8971d9edcbd5e4466a6815b779545; path=/; domain=.wer-kennt-wen.de Location http://www.wer-kennt-wen.de/start Content-Length 0 |
und hier mal mein Code:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| var Quelltext: string; Params: TStringList; begin LoadOpenSSLLibrary;
Params := TStringList.Create;
Params.Add('loginName='+edtEmail.Text); Params.Add('pass='+edtPassword.Text); Params.Add('logIn=1');
IdHTTP.Request.Host := 'secure.wer-kennt-wen.de'; IdHTTP.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.13) Gecko/20101203 YFF35 Firefox/3.6.13'; IdHTTP.Request.Accept := 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'; IdHTTP.Request.AcceptLanguage := 'de-de,de;q=0.8,en-us;q=0.5,en;q=0.3'; IdHTTP.Request.AcceptEncoding := 'gzip,deflate'; IdHTTP.Request.AcceptCharSet := 'ISO-8859-1,utf-8;q=0.7,*;q=0.7'; IdHTTP.Request.Connection := 'keep-alive'; IdHTTP.Request.Referer := 'http://www.wer-kennt-wen.de/'; IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded'; IdHTTP.Request.ContentLength := 65;
Quelltext := IdHTTP.Get('http://www.wer-kennt-wen.de'); Quelltext := IdHTTP.Post('https://secure.wer-kennt-wen.de/login/index',Params);
Params.Free; |
Falls jemand Zeit hat und mir eventuell helfen könnte, wäre ich sehr dankbar dafür.
MfG
|
|
bruce185 
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: So 02.01.11 08:14
Hallo nochmal,
bei den Post Daten werden auch 2 Werte gesendet, x und y, diese jedoch nicht im Quelltext auf der Startseite von wer-kennt-wen.de zusehen ist.
Die Werte x und y sind immer anders und ich weiss nicht, wie ich diese auslesen soll, da diese nicht zufinden sind.
Wenn ich HttpFox von Mozilla FireFox verwende, werden diese Daten x und y auch mit gesendet, sobald ich mich einlogge.
Mir ist auch aufgefallen, wenn ich mich einlogge und sofort den HttpFox Stoppe, dann sind die Werte x und y auf 0, wenn ich HttpFox wieder starte und mich einlogge und es fertig laufen lasse, dann sind die Werte x und y befüllt.
Werden diese Werte erst irgendwo bei der Weiterleitung gesendet oder so?
Ich denke, dass es was damit zu tun hat oder?
MfG
|
|
|