G
greece57
Gast
Hallo @ all 
Ich versuche gerade ein Programm zu schreiben mit dem ich mich automatisch auf einer Seite einlogge und dort alle x Minuten eine Hand voll Daten auslese.
Es hat auch schon alles ganz gut Funktioniert, allerdings komme ich mit der Cookieverwaltung nicht wirklich klar:
Hier mein Code mit dem ich mich einlogge: (Problem schildere ich unten)
später habe ich dann den zurückgegebenen Quelltext ausgewertet (und mir den Link zu dem ich will aufgeschrieben) und will per GET-request auf die nächte Seite kommen:
So nun zu meinem Problem:
Jedesmal (außer 2 mal
) schickt er mir den HTMLCode der Startseite zurück und nicht den der Seite wo ich hin will
Ich hab mir mal für meinen Firefox das "Live Header HTTP" addon geladen und er gibt mir zurück dass die Seite die ich haben will folgende Cookies immer mitsendet:
"Cookie: PHPSESSID=bc7dl7l3v1o9lav1lrb745b6n1; user_c=2241529; kapisave=2241529; __utma=1.13709108.1334841759.1334841759.1334841759.1; __utmb=1.1.10.1334841759; __utmc=1; __utmz=1.1334841759.1.1.utmcsr=kapiland.de|utmccn=(referral)|utmcmd=referral|utmcct=/"
Diesen Cookie kann ich ja auch zu 75% nachbaun allerdings habe ich keine Ahnung wo ich den dieses "__utma...." zeug her kriege.
Ich hab zwar herrausgefunden dass der irgendwie über googleanalytics herkommt aber wo ich den für mich auslesen kann verstehe ich leider nicht :/
Weiß jmd wo ich den finde, ob ich das irgendwie umgehen kann oder ob mein Fehler vl ganz wo anders liegt?
Wär euch für jede Hilfe oder Idee dankbar!
Danke schonmal im vorraus,
Niko
Ich versuche gerade ein Programm zu schreiben mit dem ich mich automatisch auf einer Seite einlogge und dort alle x Minuten eine Hand voll Daten auslese.
Es hat auch schon alles ganz gut Funktioniert, allerdings komme ich mit der Cookieverwaltung nicht wirklich klar:
Hier mein Code mit dem ich mich einlogge: (Problem schildere ich unten)
Java:
InternetConnection {
private List<String> cookies;
//...
public String Login(String adress, String user, String pw, int WELT) throws MalformedURLException, IOException
{
URL url = new URL(adress);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
/* Parameter per POST senden */
con.setRequestMethod("POST");
con.setDoOutput(true);
/* einloggen */
OutputStreamWriter writer = new OutputStreamWriter(con.getOutputStream());
writer.write("server=Welt" + WELT + "&USR=" + user + "&pass=" + pw +"&gfxaktive=1");
writer.flush();
writer.close();
/* Asugabe der HTML Antwort Page */
BufferedReader reader = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String line = null;
String s = "";
while((line = reader.readLine()) != null) {
s += line + "\n";
}
/* cookies auslesen */
cookies = con.getHeaderFields().get("Set-Cookie");
con.disconnect();
return s;
}
später habe ich dann den zurückgegebenen Quelltext ausgewertet (und mir den Link zu dem ich will aufgeschrieben) und will per GET-request auf die nächte Seite kommen:
Java:
public String getHTMLStringMitCookies(String aktAdress, String nextAdress) {
try {
// Create a URL for the desired page
URL url = new URL(aktAdress);
HttpURLConnection con = (HttpURLConnection) url.openConnection();;
/* nun die Cookies wieder mitgeben */
String c = cookies.toString().replace("[", "").replaceAll("]", "");
//con.setRequestProperty("Cookie", c);
con.setRequestMethod("GET");
con.setDoOutput(true);
String user_c = c.substring(c.indexOf("user")+7, c.indexOf(";", c.indexOf(";",c.indexOf(";")+1)+1));
String kapisave = c.substring(c.indexOf("kapisave")+9, c.indexOf(";",c.indexOf(";")+1)+1);
String phpsessid = c.substring(c.indexOf("PHPSESSID")+10, c.indexOf(";", 1));
con.setRequestProperty("Cookie", "PHPSESSID=" + phpsessid + "; user_c="+ user_c + "; kapisave=" + kapisave");
OutputStreamWriter writer = new OutputStreamWriter(con.getOutputStream());
writer.write(nextAdress);
writer.flush();
writer.close();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String str;
String s = "";
while ((str = in.readLine()) != null) {
s += (str + "\n");
}
in.close();
return s;
} catch (MalformedURLException e) {
System.out.println(e.getMessage());
} catch (IOException e) {
System.out.println(e.getMessage());
}
return null;
}
So nun zu meinem Problem:
Jedesmal (außer 2 mal
Ich hab mir mal für meinen Firefox das "Live Header HTTP" addon geladen und er gibt mir zurück dass die Seite die ich haben will folgende Cookies immer mitsendet:
"Cookie: PHPSESSID=bc7dl7l3v1o9lav1lrb745b6n1; user_c=2241529; kapisave=2241529; __utma=1.13709108.1334841759.1334841759.1334841759.1; __utmb=1.1.10.1334841759; __utmc=1; __utmz=1.1334841759.1.1.utmcsr=kapiland.de|utmccn=(referral)|utmcmd=referral|utmcct=/"
Diesen Cookie kann ich ja auch zu 75% nachbaun allerdings habe ich keine Ahnung wo ich den dieses "__utma...." zeug her kriege.
Ich hab zwar herrausgefunden dass der irgendwie über googleanalytics herkommt aber wo ich den für mich auslesen kann verstehe ich leider nicht :/
Weiß jmd wo ich den finde, ob ich das irgendwie umgehen kann oder ob mein Fehler vl ganz wo anders liegt?
Wär euch für jede Hilfe oder Idee dankbar!
Danke schonmal im vorraus,
Niko