Skip to content

HttpClient

springside edited this page Sep 2, 2012 · 10 revisions

##Overview HttpClient有三种选择:

  1. JDK自带的HttpURLConnection,貌似在大多数场景下都已足够使用。
  2. Apache HttpClient,多了一些功能,比如设定最大连接池,Cookies与认证的功能更强等等。
  3. Jersey的Restful Client和 Spring的RestTemplate。

对于很Restful的服务端,Jersey/Spring的Restful Client能更好的打交道,比如发送和读取Restful应用常用的参数,转换json格式的数据等等。

如果是简单Http请求,可以直接使用HttpURLConnection, 够简单,不需要引入额外依赖包。

但HttpURLConnection不能控制Keep-Alive长连接,还有其他进一步的需求时,换用Apache HttpClient。

##Apache Http Client 在showcase的RemoteContentServlet, 演示了多线程安全的,使用了ConnectionPool的Apache HttpClient,并演示了如何设置SocketTimeout。

JDK HttpConnectionURL

同样在showcase的RemoteContentServlet中演示,内部应该也用了连接池,只不过没有最大数量的限制。

##Spring RestTemplate/Jersey Client 简单情形下,直接用Spring自带RestTemplate即可,见Spring Restful章节。 当觉得不够用时,可尝试使用Jersey Client, 见Jersey章节。

返回参考手册

Clone this wiki locally