我的应用程序中有一个非常大的错误,我似乎真的无法解决。每当我通过以下代码拨打电话:
HttpGet request = new HttpGet(url + getParams());
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 5000);
HttpConnectionParams.setSoTimeout(httpParameters, 10000);
DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
httpClient.execute(request);
我在DDMS中收到错误:
07-15 11:22:47.448: WARN/System.err(973): org.apache.http.conn.ConnectTimeoutException: Connect to (some ip-address) timed out
但是有时代码可以完美运行,并且我可以接收到我的数据。我还通过计算机上的普通网络浏览器测试了其余的服务器调用,该调用总是在100ms内返回我的数据。那我在做什么错?我也在另一台设备上进行了测试,但这给了我同样的问题。如果有人能够解决我的问题,我将非常高兴:)
最佳答案
问题是DefaultHttpClient
。您是否在异步使用它?由于DefaultHttpClient
并非线程安全的,因此在异步环境中使用它可能会引起问题。当我的 Activity 同时启动多个Http连接时,我遇到了这个问题,最终我将其更改为使用HttpURLConnection
。您可以引用以下站点:http://www.vogella.de/articles/AndroidNetworking/article.html
关于android - HttpClient执行不断给ConnectTimeoutException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6705170/