9

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

似乎客户端 REST 框架的两个不错的选择是HttpClientHttpUrlConnection

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

4

7 回答 7

4

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

于 2009-11-25T09:50:27.567 回答
4

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

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

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

于 2009-11-22T10:04:01.670 回答
2

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

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

此致,

杰罗姆·卢维尔

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

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

于 2009-11-20T15:42:40.987 回答
1

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

于 2009-11-16T01:02:44.127 回答
1

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

于 2009-11-16T01:04:31.327 回答
1

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

于 2010-03-30T08:03:42.117 回答
0

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

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

于 2009-11-16T02:25:03.737 回答