我们有一个即将投入生产的Spring项目。目前项目使用的是Apache Http Client
。有一种用RestTemplate
代替HttpClient
的想法。
我正在挖掘使用RestTemplate
优于Apache's
的任何显著优势。此外,了解HTTP传输在RestTemplate的实现中做了什么也会很有趣。Apache Http Client已被多个组织使用多年,并拥有良好的声誉。
我们会冒险搬到RestTemplate
吗?
进一步,本文指出RestTemplate需要为生产配置,尽管配置是最小的。
谢谢
RestTemplate和HttpClient不在同一个抽象层上操作。
HttpClient是一个使用HTTP进行通信的通用库,而RestTemplate是一个高级抽象,处理实体的JSON/XML转换等。
RestTemplate委托给一个ClientHttpRequestFactory,这个接口的一个实现使用Apache的HttpClient。
所以,如果目标是与Restful API通信,而你仍然想使用HttpClient,你可以在HttpClient上使用RestTemplate。
请注意,我刚才所说的正是你所链接的博客所解释的:
因此,解决方案是使用org.springframework.http.client。HttpComponentsClientHttpRequestFactory,它是一个ClientHttpRequestFactory,将请求的创建委托给HttpClient。