HttpClient coincé sans aucune exception

Je voudrais développer une application qui utilise fortement le HttpClient de apache.

Sur mon premier essai, l'application a fonctionné parfaitement jusqu'à ce qu'elle s'est coincé. Il n'a pas été arrêté, il ne lance pas d'exception, il est juste assis là à ne rien faire.

J'ai fait un deuxième essai tout à l'heure et arrêté le temps et elle s'est arrêtée après approx. 24 heures de contant en cours d'exécution. En outre, j'ai remarqué que la connexion internet de mon portable sur lequel je l'avais de course a pris fin à l'exact moment où la demande s'est coincé. J'ai dû redémarrer mon adaptateur de réseau sans fil dans le but de le net de nouveau en marche.

L'application, cependant, n'est pas de retour au travail après que la connexion a été à nouveau. Et maintenant, il est coincé à nouveau.

Est-il un délai d'attente de contrôleur, je ne suis pas au courant de la HttpClient? Pourquoi ne pas mon application lever une exception lorsque la connexion est en panne?

La partie qui utilise le client se présente comme suit;

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'application à plusieurs reprises des appels httputil.getContentAsString() sur les Url dont il a besoin.

  • Peut-être que votre entité est une chaîne vide.
  • Alors ma méthode serait encore de retour, la chaîne vide, ne serait-il pas? Ou de jeter une exception au moins?
  • J'ai le même problème. httpEntity.consumeContent() sauve-moi. stackoverflow.com/questions/9505358/...
  • avez-vous jamais résoudre ce problème?
  • C'était un problème de délai d'attente. Quand j'ai ajouté un délai d'attente de la connexion, il a été résolu à l'IIRC (c'était il y a longtemps...). Ce que le problème sous-jacent de la connexion a été, je ne m'en souviens pas.