Attualmente sto usando il HTTPClient 4 per fare una richiesta POST a un server remoto come questo:Chiusura HttpClient connessione prima timout viene raggiunto
HttpResponse response = httpClient.execute(request);
InputStream is = response.getEntity().getContent();
Quando il server non è raggiungibile ci vuole una quantità di auto-configurato di tempo prima che la connessione scada veramente. Durante quel periodo, execute() è una chiamata bloccante.
Quello che sto cercando è un modo per cancellare execute() prima del timeout naturale in modo che il mio thread che esegue execute() non sia più bloccato e finisca con grazia.
Ho provato
request.abort();
e
httpClient.getConnectionManager().shutdown();
Ma entrambe queste chiamate non interrompere il execute(). C'è un altro modo per annullare il tentativo di connessione in corso?
Sto cercando un modo per fermare il blocco execute() di non aspettare più a lungo. – Moritz
Il futuro impl "bloccherà" ma il thread chiamante può attendere una ~ misura precisa di msecs e quindi "timeout" e procedere alla sua maniera allegra. – alphazero
Non voglio aspettare un intervallo preciso di tempo per impedire a execute() di bloccare il thread corrente. – Moritz