我的应用程序中有一个非常大的错误,我似乎真的无法解决。每当我通过以下代码拨打电话:

  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/

10-12 00:11