当从android应用程序向外部服务器发送http请求时,重用DefaultHTTPClient的利弊是什么?我试着在发出周期性的请求时重用aDefaultHTTPClient,但是我得到了随机的套接字超时(特别是在使用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对象)。
有什么建议吗?

最佳答案

你的api级别是什么?
如果您在8或8以上,您可以考虑尝试AndroidHttpClient,这可能指定了更好的套接字超时。
否则,您可以检查如何创建DefaultHttpClient并尝试指定更长的超时。

关于android - 使用DefaultHTTPClient发出HTTPGet请求时的套接字超时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5254264/

10-10 08:14