应该不鼓励使用java.net.HttpURLConnection,因为org.apache.http.client.HttpClient更好吗?

时间:2011-09-21 07:24:48

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

我仍然看到人们使用HttpURLConnection与网站进行通信。该论坛还有许多与HttpURLConnection相关的问题。现在,来自apache的HttpClient几乎可以实现HttpURLConnection所能实现的所有功能,代码更少,更清晰,更高效。我的问题是,

  1. 作为开发人员,我们是否应该不鼓励使用HttpURLConnection?
  2. 是否存在使用HttpURLConnection优于HttpClient的用例?

2 个答案:

答案 0 :(得分:5)

  

作为开发人员,我们是否应该阻止HttpURLConnection的使用呢?

不,我不会那样看。

  

是否存在使用HttpURLConnection优先于HttpClient的用例?

对于HttpURLConnection完成工作的非常简单的用例,我不会为了几行更清晰的代码而包含任何依赖。

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


这种推理适用于所有第三方Java库。如果这是一个有限的场景,如果标准API能够很好地完成这项工作,那就去吧。否则,请始终使用能够让您的生活更轻松的库。比较例如

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

答案 1 :(得分:2)

如果你有完整的源代码功能,你应该更喜欢HttpClient。它比HttpURLConnection更好,提供更多功能,适合重定向等事情。

对于非常简单的情况,使用它可能是一种开销。此外,可能存在您不允许使用第三方库的情况。这些是我认为不喜欢HttpClient的唯一原因。