你好,我的应用程序向服务器请求一些数据,当应用程序接收到结果之前,应用程序会向用户显示对话框,但在某些情况下,应用程序没有接收到任何响应,也没有超时发生,对话框将永远停留在屏幕上。
以下是HttpClient的代码:
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
HttpProtocolParams.setUseExpectContinue(params, true);
// Turn off stale checking. Our connections break all the time anyway,
// and it's not worth it to pay the penalty of checking every time.
HttpConnectionParams.setStaleCheckingEnabled(params, false);
// Default connection and socket timeout of 30 seconds. Tweak to taste.
HttpConnectionParams.setConnectionTimeout(params, 5*1000);
HttpConnectionParams.setSoTimeout(params, 30*1000);
HttpConnectionParams.setSocketBufferSize(params, 8192);
ConnManagerParams.setTimeout(params, 5 * 1000);
ConnManagerParams.setMaxConnectionsPerRoute(params, new ConnPerRouteBean(50));
ConnManagerParams.setMaxTotalConnections(params, 200);
// Sets up the http part of the service.
final SchemeRegistry supportedSchemes = new SchemeRegistry();
// Register the "http" protocol scheme, it is required
// by the default operator to look up socket factories.
final SocketFactory sf = PlainSocketFactory.getSocketFactory();
supportedSchemes.register(new Scheme("http", sf, 80));
supportedSchemes.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
final ThreadSafeClientConnManager ccm = new ThreadSafeClientConnManager(params,
supportedSchemes);
DefaultHttpClient httpClient = new DefaultHttpClient(ccm, params);`
如果有错误,请指明错误或其他代码建议。