【问题标题】:Should use of java.net.HttpURLConnection be discouraged as org.apache.http.client.HttpClient is way better ?应该不鼓励使用 java.net.HttpURLConnection ,因为 org.apache.http.client.HttpClient 更好吗?
【发布时间】:2011-09-21 07:24:48
【问题描述】:

我仍然看到人们使用 HttpURLConnection 与网站进行通信。这个论坛也有很多与 HttpURLConnection 相关的问题。现在,来自 apache 的 HttpClient 几乎可以实现 HttpURLConnection 可以实现的所有功能,而且代码更少、更干净、更高效。我的问题是,

  1. 作为开发人员,我们是否应该普遍劝阻使用 HttpURLConnection ?
  2. 是否存在使用 HttpURLConnection 优先于 HttpClient 的用例?

【问题讨论】:

    标签: java http httpurlconnection apache-httpclient-4.x


    【解决方案1】:

    作为开发人员,我们是否应该普遍劝阻使用 HttpURLConnection ?

    不,我不会那样看的。

    有没有使用 HttpURLConnection 优先于 HttpClient 的用例?

    对于真正简单的用例,HttpURLConnection 可以很好地完成工作,为了几行更清晰的代码,我不会包含任何依赖项。

    对于我想说的任何其他情况,请使用HttpClient :-)


    这种推理适用于所有第 3 方 Java 库。如果这是一个有限的场景,并且如果标准 API 做得足够好,那就去吧。否则,请始终使用使您的生活更轻松的库。例如比较

    • Caldenar / Date vs JodaTime
    • 标准 API Collection 类与 Guava / Apache Commons
    • 您选择的库与标准 Java 对应库。

    【讨论】:

      【解决方案2】:

      如果你有完整的源代码,你应该更喜欢HttpClient。它比 HttpURLConnection 好得多,提供更多功能并为您提供重定向等服务。

      对于非常简单的情况,使用它可能会产生开销。也可能存在不允许使用第三方库的情况。这些是我能想到的不喜欢 HttpClient 的唯一原因。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-02-03
        • 1970-01-01
        • 1970-01-01
        • 2017-08-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多