我试图通过HTTPS协议连接到Web服务器,但是response.getBody()返回null并且必须返回一个
JSON数组. statusCode为200,标头包含正确的信息,只有body为null.我为此使用标准的Spring RestTemplate API(postForEntity()).也许为了做到这一点我必须使用一些特殊的Sping API?不幸的是,我在Spring REST文档中找不到关于HTTPS支持和SSL /’TLS’证书的信息(这是相当有限的).
解决方法
您可以使用HttpComponentsClientHttpRequestFactory配置RestTemplate,例如:
<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.
它看起来像HttpComponentsClientHttpRequestFactory提供的HttpClient支持SSL开箱即用,所以可能几乎没有你需要的配置.