【问题标题】:Right way to manage HTTP connection in Android在 Android 中管理 HTTP 连接的正确方法
【发布时间】:2013-11-19 13:16:34
【问题描述】:

我编写了两个处理 HTTP 请求的程序。我想知道一个是否比另一个更好 -

程序 1(使用 HttpURLConnection)

          URL url = new URL("https://www.google.com/");

          HttpURLConnection connection = (HttpURLConnection) url.openConnection();

          connection.setRequestMethod("GET");

          connection.setDoOutput(false);

          connection.connect();

          reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));

          stringBuilder = new StringBuilder();

程序 2(使用 HttpPost)

         DefaultHttpClient httpClient = new DefaultHttpClient();

         HttpPost httpPost = new HttpPost("https://test.com");

         HttpResponse httpResponse = httpClient.execute(httpPost);

         InputStream inputStream = httpResponse.getEntity().getContent();

         InputStreamReader inputStreamReader = new InputStreamReader(inputStream);

同样在程序 2 中,我使用单例来获取连接对象。但是在程序 1 中没有全局连接对象,每次发出请求时我都需要重新创建 HttpURLConnection 对象。如果我在正确的轨道上,请告诉我。

谢谢

【问题讨论】:

    标签: android httpurlconnection androidhttpclient


    【解决方案1】:

    我想建议您使用Android Asynchronous Http Client 库。 然后你可以避免这些基本的东西。我最喜欢的一件事是 HTTP 请求发生在 UI 线程之外。

    【讨论】:

      【解决方案2】:

      同样在程序 2 中,我使用单例来获取连接对象。但是在程序 1 中没有全局连接对象,每次发出请求时我都需要重新创建 HttpURLConnection 对象。

      方法2看起来更简单,但是太老了

      Apache HTTP 客户端 - HTTPPost

      DefaultHttpClient 及其兄弟 AndroidHttpClient 是可扩展的 适用于 Web 浏览器的 HTTP 客户端。他们有大而灵活的 蜜蜂。它们的实现是稳定的,并且几乎没有错误。但是 这个 API 的大尺寸让我们很难在没有的情况下改进它 破坏兼容性。 Android 团队没有积极开展工作 Apache HTTP 客户端。

      HttpURLConnection

      HttpURLConnection 是一个通用的轻量级 HTTP 客户端 适用于大多数应用。这门课出身卑微,但 其专注的 API 使我们能够轻松地稳步改进。

      在 Froyo 之前,HttpURLConnection 有一些令人沮丧的错误。

      我们应该时选择方法1:

      对于 Gingerbread 和更好的,HttpURLConnection 是最佳选择。它的 简单的 API 和小尺寸使其非常适合 Android。透明的 压缩和响应缓存减少网络使用,提高速度和 节省电池。新应用程序应该使用 HttpURLConnection;这是 未来我们将把精力花在哪里。

      方法2时

      Apache HTTP 客户端在 Eclair 和 Froyo 上的错误更少。这是这些版本的最佳选择。

      谢谢,

      【讨论】:

        猜你喜欢
        • 2015-04-04
        • 1970-01-01
        • 1970-01-01
        • 2018-11-26
        • 1970-01-01
        • 2021-06-18
        • 1970-01-01
        • 2023-03-05
        • 1970-01-01
        相关资源
        最近更新 更多