Spring Library中的REST(RestTemplate)是否支持HTTPS协议?

时间:2012-12-19 15:16:22

标签: java spring rest https

我正在尝试通过HTTPS协议连接到Web服务器,但response.getBody()返回null并且必须返回JSON数组。 statusCode为200,标题包含正确的信息,只有正文为null。我为此目的使用标准的Spring RestTemplate API(postForEntity())。也许为了做到这一点,我必须使用一些特殊的Sping API?

不幸的是,我在Spring REST文档中找不到有关HTTPS支持和SSL /'TLS'证书的任何信息(这是非常有限的)。

1 个答案:

答案 0 :(得分:18)

您可以使用RestTemplate配置HttpComponentsClientHttpRequestFactory,例如:

<bean id="httpComponentsClientHttpRequestFactory" class="org.springframework.http.client.HttpComponentsClientHttpRequestFactory"/>

<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
    <constructor-arg ref="httpComponentsClientHttpRequestFactory"/>
</bean>

这允许RestTemplate使用引擎盖下的Apache HttpComponents HttpClient,它肯定支持SSL。

HttpClient提供的HttpComponentsClientHttpRequestFactory似乎支持开箱即用的SSL,因此您可能几乎不需要配置。