使用DefaultHTTPClient发出HTTPGet请求时的套接字超时

时间:2011-03-10 00:54:32

标签: android

从Android应用程序向外部服务器发送HTTP请求时重用DefaultHTTPClient的优缺点是什么?我在定期DefaultHTTPClient请求时尝试重用HTTPGet,但我得到随机套接字超时(特别是在使用3G时)。

我的代码如下所示:

public class MyHTTPSender {
  private DefaultHTTPClient mClient;

  public MyHTTPSender() {
    mClient = new DefaultHTTPClient();
  }

  public void send(String httpAddress) {
HttpGet get = new HttpGet(this.surrogateURL);
    HttpResponse response = null;
try {
      response = httpClient.execute(get);
      // ... consume entity if OK          
    } catch (Exception e) {
    } finally {
        if (response != null) {
           // do some sanity checks to ensure Entity is there!
           response.getEntity().consumeContent();
        }
    }
  }
}

我看不出我在做什么有什么问题。我有一个单独的处理程序来发出HTTPPost请求,并且运行得很好(使用不同的DefaultHTTPClient对象)。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

你在哪个API级别?

如果你在8岁或以上,你可以考虑尝试AndroidHttpClient,这可能会有更好的套接字超时指定。

否则,您可能会检查如何创建DefaultHttpClient并尝试指定更长的超时时间。