G
Guest
Gast
Hallo!
Ich habe mich seit kurzem mit dem Thema xlightweb beschäftigt und versuche, eine asynchrone HTTP Connection zu einem Server aufzubauen, der die AJAX-Technologie benutzt.
Die Kommunikation verläuft über einen Browser so:
- Per POST werden Logindaten zum Server geschickt.
- Der Server liefert XML-Daten zurück, die der Client auswertet.
- Per AJAX liefert der Server aktuelle Informationen.
Dies soll nun ein Java-Programm übernehmen und die Informationen auslesen. Ich möchte dabei nicht alle 3 Sekunden den Server anfragen, da dies mächtig Transfer erzeugt, sondern warten, bis der Server neue Daten liefert.
Mit einer einfachen URL-Connection kann ich dies leider nicht realisieren. Deswegen habe ich nach einer Lösung gesucht und bin auf xlightweb gestoßen.
Mit dem folgenden Code möchte ich die Nachrichten handlen:
(Vorweg: Ich erhalte irgendwie nie eine Nachricht.)
Die Verbindung zum Server wird so aufgebaut:
Das Ergebnis:
Keine Exception, keine Antwort. Der Thread ist beendet. Gibt es eine Möglichkeit, dieses AJAX zu handlen? Die Requests und Posts, die der Browser sendet, habe ich mir schon angeschaut. 1x POST und dann folgen immer neue GETs, wenn der Server Daten liefert.
Ich wäre über Eure Hilfe sehr dankbar!
Gruß,
Enrico
Ich habe mich seit kurzem mit dem Thema xlightweb beschäftigt und versuche, eine asynchrone HTTP Connection zu einem Server aufzubauen, der die AJAX-Technologie benutzt.
Die Kommunikation verläuft über einen Browser so:
- Per POST werden Logindaten zum Server geschickt.
- Der Server liefert XML-Daten zurück, die der Client auswertet.
- Per AJAX liefert der Server aktuelle Informationen.
Dies soll nun ein Java-Programm übernehmen und die Informationen auslesen. Ich möchte dabei nicht alle 3 Sekunden den Server anfragen, da dies mächtig Transfer erzeugt, sondern warten, bis der Server neue Daten liefert.
Mit einer einfachen URL-Connection kann ich dies leider nicht realisieren. Deswegen habe ich nach einer Lösung gesucht und bin auf xlightweb gestoßen.
Mit dem folgenden Code möchte ich die Nachrichten handlen:
(Vorweg: Ich erhalte irgendwie nie eine Nachricht.)
Code:
HttpClient conn = new HttpClient();
IHttpResponseHandler responseHandler = new IHttpResponseHandler() {
public void onException(IOException ex) throws IOException {
System.out.println("Exception:");
ex.printStackTrace();
}
@InvokeOn(InvokeOn.MESSAGE_RECEIVED)
public void onResponse(IHttpResponse response) throws IOException {
System.out.println("Response:");
System.out.println(response.getStatus());
System.out.println(response.getBlockingBody());
}
};
Die Verbindung zum Server wird so aufgebaut:
Code:
try {
IHttpRequest request = new PostRequest("http://server/page", formParams);
// Hier werden schon XML-Daten zurück gegeben, leider ist das geblockt
System.out.println(conn.call(request, responseHandler));
// Wenn der Server Daten hat, sollen sie per GET abgeholt werden
IHttpRequest request2 = new GetRequest("http://server/page");
// der Response-Handler soll die Daten verarbeiten
conn.send(request2, responseHandler);
}
catch (MalformedURLException e1) {
e1.printStackTrace();
}
catch (IOException e1) {
e1.printStackTrace();
}
Das Ergebnis:
Keine Exception, keine Antwort. Der Thread ist beendet. Gibt es eine Möglichkeit, dieses AJAX zu handlen? Die Requests und Posts, die der Browser sendet, habe ich mir schon angeschaut. 1x POST und dann folgen immer neue GETs, wenn der Server Daten liefert.
Ich wäre über Eure Hilfe sehr dankbar!
Gruß,
Enrico