Ich will den Quelltext einer bestimmten Seite in einen String speichern.
Gibt es in der URL Klasse irgendeine Methode mit der ich das realisieren kann?
Also ich übergebe zum Beispiel die Adresse als Parameter und erhalten den Html-Quelltext der Site als String!
in der Klasse URL gibt es das IMHO nicht. Du kannst aber eine HttpURLConnection aufmachen und davon den Stream auslesen, den schreibst du dann zeilenweise in einen String. Würde ich jetzt mal so sagen 8)
Es geht um eine Site auf der ich zwar eingeloggt bin, wenn ich aber über das Java-Prog den Quelltext auslese, dann bin ich NICHT eingeloggt, logisch!
Kann ich jetzt irgendwie die Session-ID oder den Cookie mitschicken wenn ich die Site über das prog aufrufe damit er erkennt das ich eingeloggt bin?
du sitzt an dem gleichem Prob wie ich auch
Mal gucken ob du auch noch zu meinem Posting kommst :wink:
Bei meiner Seite ist es so, dass nach dem Einloggen eine Seite zurückgesendet wird, in der die Session ID steht. Wenn du weißt wie sie aufgebaut ist, kannst du die immer mit nem Pattern suchen (regex).
Also wieder Stream aufmachen und erstmal alles lesen was da kommt und dann mit Regular Expression durchsuchen.
Du mußt diese ID bestimmt dann weiter verwenden, oder?
also bei mir steht die im Text, aber ich habe eh mehr Probleme mit dem Feststellen wann die Seite komplett geladen ist :lol: egal, bei deinen Links geht bei mir nur der letzte
wir arbeiten zu dritt ) alle am selben Problem(bereich), aber ich glaube, ihr habt mein spezielles Problem gelöst, also, ich sende per PostMethod (aus Jakarta httpclient-3.0)) Post Daten (eben einen Login) an ein serverside-script (vermutlich php, eventuell auch Python, aber das sollte doch egal sein, oder?). Wie kann ich jetzt die Seite, die ich als Antwort erhalte, auslesen (so, dass ich sie als String vorliegen habe)? Das öffnen eines Stream über die verwendete UrlConnection gibt eine andere Seite aus...
Also ich erhalte den Source-Code der angeforderten Seite als String, so wie es auch sein sollte, aber da mein Prog den Cookie nicht an die Seite mitsendet (genau DA ist mein Problem), erhalte ich nicht den Source den ich haben will sondern "bla bla bla, sie müssen eingeloggt sein um diese Seite zu betreten, bla bla bla"
Also, hier ist mal mein bisheriger Code:
Code:
public class SourceMurgs
{ public static void main(String[] args)
throws MalformedURLException, IOException
{
String urlString="http://blablabla.de";
URL url = new URL("http://blablabla.de");
URLConnection conn = url.openConnection();
String cookie = conn.getHeaderField("Set-Cookie"); // Herausfiltern der Session-ID.
System.out.println(""+conn.getHeaderFields()); // Ausgabe des gesamten Headers.
BufferedReader br =
new BufferedReader(
new InputStreamReader(
new URL(urlString).openStream()));
String inText;
System.out.println(cookie); // Ausgabe der Session-ID.
while ((inText = br.readLine()) != null) // Ausgabe des html-Quelltext der
System.out.println(inText); // angeforderten Site.
}
}
Also nochmal zu meinem Problem:
Ich kann mich per Browser auf der Seite einloggen, erhalte dann auch einen Cookie usw. (is klar denke ich). Und wie, verdammt noch mal *langsam verzweifel* bringe ich diesem Programm jetzt bei das es genau diesen Cookie verwenden soll wenn es die connection zu der Seite aufbaut!?!? Kann ich den Cookie irgendwie von Firefox (der ihn ja kennt) verwenden?
Ich kann mich per Browser auf der Seite einloggen, erhalte dann auch einen Cookie usw. (is klar denke ich). Und wie, verdammt noch mal *langsam verzweifel* bringe ich diesem Programm jetzt bei das es genau diesen Cookie verwenden soll wenn es die connection zu der Seite aufbaut!?!? Kann ich den Cookie irgendwie von Firefox (der ihn ja kennt) verwenden?
geht es wirklich um einen Keks (engl. Cookie) oder musst du POST-Daten an ein Script senden (was Firefox z.B. beim Ausfüllen eines Formulars machen würde)?
Das Problem ist ja, das die Seite denkt ich wäre nicht eingeloggt, also nicht berechtigt die Seite zu betreten! Unter Firefox bin ich berechtigt da ich ja eingeloggt bin und den entsprechenden Cookie also habe! Also muß ich diesen Cookie irgendwie beim Request von dem Programm an die Seite verwenden! ???:L
Das Problem ist ja, das die Seite denkt ich wäre nicht eingeloggt, also nicht berechtigt die Seite zu betreten! Unter Firefox bin ich berechtigt da ich ja eingeloggt bin und den entsprechenden Cookie also habe! Also muß ich diesen Cookie irgendwie beim Request von dem Programm an die Seite verwenden! ???:L
bist du dir sicher das die Seite mit einem Keks und nicht mit einer session arbeitet?
Ansonsten sieh dir auch mal jakarta (Link oben) an, die haben ein Object Cookie, das man zu einem PostMethod-Object hinzufügen kann und dieses kann man dann an den Server senden...übertragen werden die daten so...nur wie man an die resultierende page kommt, weiß ich nicht...das ist derzeit mein Problem...
:lol: :lol: hehe wir arbeiten wirklich am selben
Also bei mir ist es so, dass die Seite, die ich abgreife eine Seite ist, die als HTML text lediglich ein framesetz enthält. Bei mir ist es also auch eine andere :roll: