Mit Java PHP-SESSID erhalten

Andreas_0815

Mitglied
Hallo Zusammen,

meine Situation: Daimler bietet im Internet frei zugänglich eine Suche für ihre Sonderwerkzeuge an. Jeder Daimler-Sonderwerkzeug-Typ hat eine eindeutige Typennummer. Mit dieser Nummer kann man auf der Website nach dem gewünschten Werkzeug suchen und erhält dann weitere Infos zum Werkzeug (z.B. Bezeichnung, ein Bild...).
In meinem Java-Programm kann man die Werkzeugnummer auch eingeben. Dann soll automatisch von meinem Programm die Suche auf dieser Website aufgerufen werden. Jedoch soll gleich das Ergebnis der Suche angezeigt werden (der Benutzer soll ja die Werkzeugnummer (12-stellig) nicht zweimal eingeben müssen).

mein Problem: Diese Website ist mit einer SessionID versehen (die Website ist ein PHP-Script). Wie ich die Werkzeugnummer und die SessionID an die Website übermittle weiß ich (Ich bin mit dem Browser auf die Website und habe dann die SessionID die in ein Cookie geschrieben wurde in meinem Programm mit POST mitversandt. Das funktioniert dann problemlos).
Ich weiß auch wie ich grundsätzlich an die SessionID ran komme. Die wird mir ja im Header mitgeschickt. Also habe ich den Header geladen und die SessionID rausgezogen:
Code:
HttpURLConnection indexCon = (HttpURLConnection)(indexUrl).openConnection();
String sessionID = con.getHeaderField(4);
Jedoch bringt mir die SessionID nur bedingt etwas, denn die ist nicht gültig.

Ich habe auch im Firefox die Cookie-Einstellungen mal auf "jedes Mal nachfragen" gestellt und das vorhandene Cookie gelöscht. Anschließend habe ich die Website, die die Suche anzeigt (http://specialtoolbase.aftersales.daimlerchrysler.com/mpc/toolsframe2.php) neu geladen. Firefox hat mich dann gefragt, ob ich das SessionID-Cookie annehmen will. Wenn ich es annehme kommt aber trotzdem die Fehlermeldung: "Session abgelaufen".
In der Cookie-Auflistung finde ich aber das neue Cookie. Wenn ich diese Website dann nochmal neu lade, erhalte ich kein neues Cookie, sondern es wird sofort die Meldung mit "Session abgelaufen" angezeigt. (mit neu laden meine ich schon den "reload"-Button)
ABER: Ich kann im Browser dafür sorgen, dass die SessionID, die ich jetzt habe, gültig gemacht wird: Durch den Aufruf der Indexseite (http://specialtoolbase.aftersales.daimlerchrysler.com/index.php), die mich beim Betreten der Website zur Suchen-Seite bringt, wird die im Cookie gespeicherte SessionID nicht verändert, aber es wird anschließend die Suchen-Seite mit der schon weiter oben genannten URL (.../toolsframe2.php) angezeigt. Diesmal erhalte ich keine "Session abgelaufen"-Meldung. Und auch bei einem reload der Seite wird wieder die Suchen-Seite korrekt angezeigt.

(Ich hoffe das ganze ist einigermaßen verständlich!! Ansonsten fragt bitte nach, damit ich es euch noch anders und hoffentlich besser schildern kann)

Meine Lösungsversuche:
Da ich es ja schaffe mit meiner Java-App an die SessionID zu kommen ist mein momentanes Problem, dass ich diese SessionID wohl "aktivieren" muss. Also habe ich die Session ID mittels Java mit POST und auch mal mit GET an die ...index.php Seite gesendet. Leider ohne Erfolg. Ich bekomme immer diese Seite angezeigt: http://specialtoolbase.aftersales.daimlerchrysler.com/fehlerindex.html
Es ist aber nirgends ein Passwort oder Benutzername von Nöten. Im Browser erhalte ich diese Seite, wenn ich das Cookie lösche, auf die ...index.php Seite gehe und das Cookie nicht akzeptiere.


Ich probier an der ganzen Sache schon einige Zeit herum... ich hoffe ihr könnt mir helfen.
Leider habe ich von der Vergabe einer SessionID auch keine Ahnung... und weiß deshalb auch nicht, ob diese "Aktivierung" der SessionID ein normales Vorgehen ist.

Ich danke euch schon mal für jede Hilfe!
MfG
Andreas
 
Hallo Leute,

schon mal vielen Dank für eure Antworten!
Das HttpComponents-Paket lässt sich wegen eines Server-Problems im Moment nicht von der Website downloaden.... *mist*

Das mitsenden von dem Cookie ist jedoch gar nicht das Problem. Ich schaffe es die SessionID auszulesen und ich schaffe es auch die SessionID, aus dem Firefox mitzuschicken.
Mein Problem ist jedoch, dass die SessionID, die ich auslese nicht funktioniert. Die ist nicht aktiviert. Kennt jemand ein derartiges Problem?

Wenn ich das HttpComponents-Paket laden kann, versuch ich da auch mal noch alles was mir einfällt....

MfG
Andreas
 
Hmm mit Maven lässt es sich wunderbar einbinden. Wenn du dich ein wenig mit Maven auskennst sollte es so gehen.

Wenn du eclipse benutzt kann ich dir sonst auch sagen wie das geht.
 
Vielen Dank! Das komplette Problem mit der SessionID konnte ich mit dem HttpCommons-Paket ohne größere Probleme lösen.
Im Moment hab ich zwar noch mit dem Post ein bisschen meine Probleme, aber das wird schon werden! Ansonsten melde ich mich nochmal!

Vielen Dank!
 
Zurück