Use HTTPClient or HttpUrlConnection? [closed]

2020-06-03 09:48发布

We're implementing a REST client on JRE 1.4.

Seems two good options for a client REST framework are HttpClient and HttpUrlConnection.

Is there a reason to use HttpClient over the JRE's HttpUrlConnection?

7条回答
手持菜刀,她持情操
2楼-- · 2020-06-03 09:56

The Restlet Framework also has an API which works both server-side and client-side. We support pluggable client connectors, leveraging HttpURLConnection or Apache HTTP Client or our own internal HTTP client.

Our ClientResource class provides a higher level HTTP client API, with features like automatic redirection, transparent conversion between objects and representations, content negotiation and more.

Best regards,

Jerome Louvel

Restlet ~ Founder and Lead developer ~ http://www.restlet.org

Noelios Technologies ~ Co-founder ~ http://www.noelios.com

查看更多
戒情不戒烟
3楼-- · 2020-06-03 09:59

In my experience HttpClient is slightly easier and more intuitive to use than using HttpUrlConnection, but I think it's a very subjective decision and YMMV.

查看更多
欢心
4楼-- · 2020-06-03 10:01

The HttpUrlConnection is easy to handle. REST implementations are quite simple.

Although you must consider the whole environment about this implementation and check what will work better for you.

查看更多
Emotional °昔
5楼-- · 2020-06-03 10:07

I'll give you a single, concrete reason to favour Apache's HTTPClient over the JDK implementation: The JDK's HttpUrlConnection doesn't support timeouts*, Apache's HTTPClient does.

Applications should always have the ability to set timeouts when calling into other systems (databases, remote services, your own server backend, ...).

* This was fixed in Java 1.5; Java 1.5 and higher support timeouts in HttpUrlConnection.

查看更多
Explosion°爆炸
6楼-- · 2020-06-03 10:13

I would recommend Jakarta Commons HTTP Client over java.net.HttpUrlConnection as it is more mature and has a richer feature set. For example you can ask it to set up multi-threaded connection pool (see MultiThreadedHttpConnectionManager), and it has full support for all the HTTP methods (GET, PUT, POST, DELETE, OPTIONS, TRACE).

查看更多
Explosion°爆炸
7楼-- · 2020-06-03 10:13

... httpclient does not support kerberos/ntlm authentication for proxies etc... java's httpurlconnection will do authentication out of the box...

查看更多
登录 后发表回答