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

Ole*_*rov 10 java rest https spring

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

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

Jon*_*han 18

您可以配置RestTemplateHttpComponentsClientHttpRequestFactory,例如:

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

<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
    <constructor-arg ref="httpComponentsClientHttpRequestFactory"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

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

它看起来像开箱即HttpClientHttpComponentsClientHttpRequestFactory支持SSL,因此您可能几乎不需要配置.

  • @Alexandre Java中的等价物是:`new RestTemplate(new HttpComponentsClientHttpRequestFactory())`.如果您需要进一步的帮助,我建议您将其视为新问题 - 您至少会得到更及时的回复.:-) (2认同)