我正在開發一個長時間運行的應用程序,大量使用來自Apache的HttpClient。HttpClient卡住沒有任何異常
在我的第一次測試運行中,應用程序工作完美,直到它卡住了。它沒有停止,它沒有拋出任何異常,它只是坐在那裏無所事事。
我剛剛做了第二次運行,並停止了時間,大約在第二次運行後停止。 24小時運行。此外,我注意到我運行的筆記本電腦的互聯網連接在應用程序卡住的時刻終止。我必須重新啓動我的WLAN適配器才能再次運行網絡。
雖然應用程序在連接重新啓動後沒有恢復工作。而現在,它又被卡住了。
是否有任何超時控制器,我不知道在HttpClient中?爲什麼我的應用程序在連接斷開時不會引發異常?
使用客戶端的部分如下所示;
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());
}
該應用程序在需要的URL上重複調用httputil.getContentAsString()
。
也許你的實體是一個空字符串。 – kasavbere 2012-03-29 12:20:11
然後我的方法仍然會返回那個空字符串,不是嗎?或者至少拋出異常? – 2012-03-29 12:31:37
我有同樣的問題。 httpEntity.consumeContent()救我。 http://stackoverflow.com/questions/9505358/android-httpclient-hangs-on-second-request-to-the-server-connection-timed-out – JamesC 2015-02-25 08:57:29