Html zugriff - POST Request/Response

java_crash

Neues Mitglied
Hallo zusammen,

ich habe eie Frage zu dem Zugriff auf Webseiten von Java aus.

Habe ein Programm mit der HtmlUnit-Library geschreiben, welches sich auf einer Webseite einloggt.
Auf der Webseite fülle ich eine Suchmaske aus und "klicke" den entsprechenden Button.

Wenn ich mir danach jedoch den Quellcode zurückgeben lasse, bekomme ich zwar den Quellcode der darauffolgenden Seite zurück, aber ohne jegliche Suchergebnisse, die eigentlich auf dieser Webseite stehen.

Mit Firebug habe ich mir das ganze mal genauer angeschaut und festgestellt, dass die Suchanfrage per POST-Methode mit entsprechenden Parametern versendet wird. Über Firebug kann man sich ja auch die entsprechende Antwort anzeigen lassen. In dieser Antwort stehen auch genau diese Suchergebnisse.

Nun zu meiner Frage. Wie komme ich über Java, wenn möglich mit der HtmlUnit-Library an diese Antwort/Response.

Im folgenden mein Request, wobei ich nicht weiß ob dieser Funktioniert, da ich keine Möglichkeit gefunden habe die Antwort des Request zu bekommen.
Java:
WebRequest webRequest = new WebRequest(new URL("https://www.url"),HttpMethod.POST);
webRequest.setRequestBody("name=ABC");

Ich würde mich über jegliche Informationen freuen.


Grüße
 
Java:
WebRequest webRequest = new WebRequest(new URL("https://www.url"),HttpMethod.POST);
webRequest.setRequestBody("name=ABC");
// ... Hier noch eventuelle Parameter für den WebRequest

WebClient client = new WebClient();
//... hier noch eventuelle Einstellungen des WebCients

WebResponse response = client.loadWebResponse(webRequest);
Ungetestet, aber so müsst's gehen.
 
Danke für euren schnellen Antworten.

@AmunRa: Genau so habe ich es zuvor wie geschreiben versucht. Einfach den "submit" klicken und die entsprechende Page kommt zurück. Dies funktioniert jedoch nicht an dieser Stelle. Ich bekomme die "nächste" Seite zwar zurück, aber die Suchergebnisse fehlen einfach im Quellcode. Wenn ich mir über Firefox die Standard-Quellcodeausgabe anschaue, dann finde ich dort die Suchergebnisse ebenfalls nicht. Diese Art und Weise scheint also bei dieser Suche nicht zu funktionieren. Deswegen auch meine Idee, die Anfrage direkt an die entsprechende Adresse per Post-Methode senden und den Response irgendwie abfangen.


@nillehammer:

Habe es nun folgendermaßen versucht:

Java:
webClient = new WebClient(BrowserVersion.FIREFOX_3_6);
		webClient.setThrowExceptionOnScriptError(false);
		webClient.setCssEnabled(true);
		webClient.setJavaScriptEnabled(true);
		webClient.setUseInsecureSSL(true);
		webClient.setRedirectEnabled(true);

WebRequest webRequest = new WebRequest(new URL("https://www.url"),HttpMethod.POST);
webRequest.setRequestBody("name=ABC");

WebResponse response = webClient.loadWebResponse(webRequest);

System.out.println(response.getContentAsString());

Wenn ich mir den Response über Sysout zurückgeben lasse bekomme ich jedoch auch nur wieder den Quellcode mit dem ausgefüllten Inputfield.

Dies ist aber nicht der eigentliche Response, der mit über Firebug angezeigt wird und den ich benötige.

Hoffe auf weitere Hilfe. =)
 

Neue Themen


Zurück
Oben