Sto sviluppando un'applicazione a lunga esecuzione che utilizza pesantemente HttpClient da apache.HttpClient bloccato senza eccezioni
Durante la mia prima esecuzione di test, l'applicazione ha funzionato perfettamente finché non si è bloccata. Non è stato fermato, non ha fatto eccezione, si limita a stare lì senza far nulla.
Ho fatto una seconda corsa proprio ora e ho fermato il tempo e si è fermato dopo ca. 24 ore di gara in corso. Inoltre ho notato che la connessione Internet del mio portatile su cui l'ho installato era terminata nel momento esatto in cui l'applicazione si bloccava. Ho dovuto riavviare il mio adattatore WLAN per riavviare la rete.
L'applicazione, tuttavia, non è tornata a funzionare dopo che la connessione era di nuovo attiva. E ora, è bloccato di nuovo.
C'è qualche controller di timeout di cui non sono a conoscenza in HttpClient? Perché la mia applicazione non lancia un'eccezione quando la connessione non funziona?
La parte che utilizza il client si presenta come segue;
public HttpUtil(ConfigUtil config) {
this.config = config;
client = new DefaultHttpClient();
client.getParams().setParameter(HttpProtocolParams.USER_AGENT, this.config.getProperty("httputil.userAgent"));
}
public String getContentAsString(String url) throws ParseException, ClientProtocolException, IOException {
return EntityUtils.toString(
client.execute(
new HttpGet(url)).getEntity());
}
L'applicazione chiama ripetutamente lo httputil.getContentAsString()
sugli URL necessari.
Forse la tua entità è una stringa vuota. – kasavbere
Quindi il mio metodo restituirebbe ancora quella stringa vuota, non è vero? O lanciare un'eccezione almeno? –
Ho lo stesso problema. httpEntity.consumeContent() salvami. http://stackoverflow.com/questions/9505358/android-httpclient-hangs-on-second-request-to-the-server-connection-timed-out – JamesC