M
micha83
Gast
Hallo zusammen,
der HttpClient läuft anscheinen asynchron, denn im laufenden Programmteil wird zuerst die Datenübertragung am Ende des Codes ausgeführt, dann erst die darüberstehenden Zeilen, die ich aber unbedingt davor ausgeführt haben möchte.
Daher dachte ich, den Client in einen Thread zu packen um ihn parallel ausführen zu lassen
netter Gedanke - funktioniert leider nicht
kann mir jem erklären warum nicht und was eine funktionierende Alternative ist?
>>> Herzlichen Dank!
micha83
der HttpClient läuft anscheinen asynchron, denn im laufenden Programmteil wird zuerst die Datenübertragung am Ende des Codes ausgeführt, dann erst die darüberstehenden Zeilen, die ich aber unbedingt davor ausgeführt haben möchte.
Daher dachte ich, den Client in einen Thread zu packen um ihn parallel ausführen zu lassen
netter Gedanke - funktioniert leider nicht
kann mir jem erklären warum nicht und was eine funktionierende Alternative ist?
>>> Herzlichen Dank!
micha83
Code:
static class MethodThread extends Thread {
private HttpClient client;
private HostConfiguration host;
private PostMethod method;
public MethodThread(HttpClient client, HostConfiguration host) {
this.client = client;
this.host = host;
this.method = new PostMethod("/pfad.php");
}
public void run() {
System.err.println("Connecting to: " + host);
try{
method.addParameter("1", variable);
client.executeMethod(host, method);
} catch(IOException e) {
System.err.println(e);
} finally {
method.releaseConnection();
}
}
}
Code:
HttpClient client = new HttpClient();
HostConfiguration host = new HostConfiguration();
try {
client.getParams().setParameter("http.useragent", "Test Client");
host.setHost(new URI("server", true));
} catch(Exception eg) {
System.err.println(eg);
}
MethodThread datathread = new MethodThread(client, host);
datathread.start();