【问题标题】:Use HTTPClient or HttpUrlConnection? [closed]使用 HTTPClient 或 HttpUrlConnection? [关闭]
【发布时间】:2009-11-16 00:59:55
【问题描述】:

我们正在 JRE 1.4 上实现一个 REST 客户端。

对于客户端 REST 框架来说,似乎有两个不错的选择是 HttpClientHttpUrlConnection

是否有理由在 JRE 的 HttpUrlConnection 上使用 HttpClient?

【问题讨论】:

  • 那个对比其实是看创新HTTPClient,跟Apache的HttpClient afaik没有关系
  • 感谢对象.. 删除链接。

标签: java rest httpclient httpurlconnection


【解决方案1】:

我会推荐 Jakarta Commons HTTP Client over java.net.HttpUrlConnection,因为它更成熟并且有一个richer feature set。例如,您可以要求它设置多线程连接池(参见MultiThreadedHttpConnectionManager),并且它完全支持所有 HTTP 方法(GET、PUT、POST、DELETE、OPTIONS、TRACE)。

【讨论】:

    【解决方案2】:

    我将给您一个具体的理由来支持 Apache 的 HTTPClient 而不是 JDK 实现:JDK 的 HttpUrlConnection 不支持超时*,而 Apache 的 HTTPClient 支持。

    应用程序在调用其他系统(数据库、远程服务、您自己的服务器后端......)时应该始终能够设置超时。

    * 这在 Java 1.5 中已修复; Java 1.5 及更高版本支持 HttpUrlConnection 中的超时。

    【讨论】:

    • 不是真的!这已在 Java 1.5 中修复。
    • 我的立场是正确的。很高兴知道(它在 URLConnection 类上)。
    • 好点。我们现在是 1.4,所以这看起来完全相关。
    【解决方案3】:

    Restlet Framework 也有一个在服务器端和客户端都可以工作的 API。我们支持可插拔客户端连接器,利用 HttpURLConnection 或 Apache HTTP 客户端或我们自己的内部 HTTP 客户端。

    我们的 ClientResource 类提供更高级别的 HTTP 客户端 API,具有自动重定向、对象和表示之间的透明转换、内容协商等功能。

    最好的问候,

    杰罗姆·卢维尔

    Restlet ~ 创始人兼首席开发者 ~ http://www.restlet.org

    Noelios Technologies ~ 联合创始人 ~ http://www.noelios.com

    【讨论】:

    • 我们在 1.4 上 - Restlet 在 1.4 上工作吗?
    • @Marcus:是的,确实如此,我现在在 Java 1.6 中使用 Restlet 的客户端,这是一个梦想。 (我们将它配置为位于 Apache HTTP 客户端之上,这比 java.net.HttpUrlConnection 好得多。)
    【解决方案4】:

    根据我的经验,HttpClient 使用起来比使用 HttpUrlConnection 稍微容易和直观,但我认为这是一个非常主观的决定和 YMMV。

    【讨论】:

      【解决方案5】:

      我会选择 JRE 版本,这样我可以少一点依赖来交付。

      【讨论】:

      • 这个比较看起来有点过时
      • 我们中的一些人没有使用最新版本的 anything 的奢侈 :-(
      【解决方案6】:

      ... httpclient 不支持代理等的 kerberos/ntlm 身份验证... java 的 httpurlconnection 将进行开箱即用的身份验证...

      【讨论】:

        【解决方案7】:

        HttpUrlConnection 很容易处理。 REST 实现非常简单。

        尽管您必须考虑有关此实施的整个环境并检查哪些对您更有效。

        【讨论】:

          猜你喜欢
          • 2021-04-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-03-27
          • 2013-07-30
          • 1970-01-01
          • 2015-11-14
          相关资源
          最近更新 更多